我想创建一个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文件,但是当我打开它时,会显示以下错误:“此档案文件格式未知或已损坏”。
答案 0 :(得分:0)
除了Andrei的注释之外,您还要回显字符串“ Archived Created!”,然后设置应用程序/ zip标头,然后将ZIP文件的内容流式传输到浏览器。因此,通过在顶部插入该字符串,将损坏ZIP的内容。