Как мне создать zip-файл на PHP? - PullRequest
0 голосов
/ 01 июля 2019

Я хочу создать zip-файл, содержащий несколько PDF-файлов, сохраненных на моем сервере.

Вот код, который я пробовал,

$filenamez = 'datasheets1.zip';
$zip = new ZipArchive;

if ($zip->open('datasheets1.zip', ZipArchive::CREATE) === true) {
    // Add files to the zip file
    for ($m = 0; $m <= $total - 1; $m++) {

        $zip->addFile('datasheet' . $m, $model1[$m] . ".pdf");

    }

    $zip->close();

    echo 'Archive created!';
    header('Content-type: application/zip');
    header('Content-disposition: attachment;   filename="' . $filenamez . '"');
    header("Content-length: " . filesize($filenamez));
    readfile($filenamez);
}

Когда я выполняю этот код, zip-файл создается и загружается, но при открытии он показывает следующую ошибку: «Этот архив либо в неизвестном формате, либо поврежден».

1 Ответ

0 голосов
/ 01 июля 2019

В дополнение к комментарию Андрея вы повторяете строку 'Archived Created!', А затем также устанавливаете заголовок application / zip и затем передаете содержимое файла ZIP в браузер.Таким образом, содержимое ZIP будет загрязнено вставкой этой строки вверху, что сделает его поврежденным.

...