я использовал PHPZip библиотека для успешной отправки сжатых файлов на лету в браузер. Но у него есть недостаток: я не могу сделать запрос до завершения загрузки. Это мой код для потоковой передачи Zip:
$zip = new ZipStream($zipName);
$files = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($uploadsPath),
RecursiveIteratorIterator::LEAVES_ONLY
);
foreach ($files as $name => $file) {
$filePath = $file->getRealPath();
$fileName = substr($filePath, strlen($uploadsPath) + 1);
// add file to zip
$fhandle = fopen($filePath, "rb");
$zip->addLargeFile($fhandle, $fileName);
fclose($fhandle);
}
$zip->finalize();
Я посмотрел вокруг и думаю, что проблема в том, что PHP заблокировал поток, когда читал файл и записывал его в поток. Кто-нибудь может дать мне совет?
Благодарю.
Задача ещё не решена.
Других решений пока нет …