Мне удалось создать zip-файл, используя чистый ZipArchive . Работает нормально. Но когда я пытаюсь в laravel 7, это не работает. Zip-файл создается, но когда я извлек его, в zip-файле ничего нет.
Вот мой код в чистом виде php, который работает нормально
$files = $_POST['files'];
$zipname = 'file.zip';
$zip = new ZipArchive;
$zip->open($zipname, ZipArchive::OVERWRITE);
foreach ($files as $file) {
$zip->addFile('images/'.$file);
}
$zip->close();
header('Content-Type: application/zip');
header('Content-disposition: attachment; filename='.$zipname);
header('Content-Length: ' . filesize($zipname));
readfile($zipname);
flush();
die();
В laravel я использую этот код только немного изменить.
public function download() {
$files = array('20200427090450.jpg', '20200427090515.jpg', '20200427090521.jpg');
$zipfile = public_path('file.zip');
$zip = new \ZipArchive;
$zip->open($zipfile, \ZipArchive::CREATE);
foreach ($files as $file) {
$zip->addFile(public_path('uploads/'.$file));
}
$zip->close();
header('Content-Type: application/zip');
header('Content-disposition: attachment; filename='.$zipfile);
header('Content-Length: ' . filesize($zipfile));
readfile($zipfile);
flush();
}
Есть предложения?