如何在PHP中创建zip文件?

时间:2019-07-01 07:35:02

标签: php ziparchive

我想创建一个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 :(得分:0)

除了Andrei的注释之外,您还要回显字符串“ Archived Created!”,然后设置应用程序/ zip标头,然后将ZIP文件的内容流式传输到浏览器。因此,通过在顶部插入该字符串,将损坏ZIP的内容。