ziparchive в laravel не может добавить файл в сгенерированный zip-файл - PullRequest
0 голосов
/ 27 апреля 2020

Мне удалось создать 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();
}

Есть предложения?

...