我正在尝试创建一些图像文件的ZIP存档。这个文件目录,我已经添加到一个名为$valid
的数组中。这个数组中的每个项目都是一个字符串,如下所示:
"uploads/1845_45678_862_speaker.jpg"
这是我正在尝试使用的代码,用于创建所有这些物理文件的ZIP存档:
$zip = new ZipArchive();
$zip_name = "ptx_speakers.zip";
$zip->open($zip_name, ZipArchive::CREATE);
foreach ($valid as $zip_item) {
$zip->addFile($zip_item);
}
$zip->close();
然而,这不起作用。即使打开了错误报告,我也只能看到一个空白屏幕。之后我尝试了以下代码,但这里也没有显示:
if (!file_exists($zip_name)) {
"No file."
}
有人能在我的代码中看到致命的缺陷吗?如果你愿意的话,我可以粘贴更多(比如我如何创建初始数组)。
有人能在我的代码中看到致命的缺陷吗?
是的。
$zip->open($zip_name, ZipArchive::CREATE);
不起作用,并且您没有检查错误。
它应该是类似的东西
$res = $zip->open($zip_name, ZipArchive::CREATE);
if($res === true){
foreach ($valid as $zip_item) {
$zip->addFile($zip_item);
}
$zip->close();
} else {
echo "Error creating zip file: " . $res;
}
如果一切正常,$res
将为真,然后转到foreach等。
如果不是,则具有其中一个值。检查一下,你就会发现哪里出了问题。
在你的代码中,你正在进行
$zip->addFile($zip_item);
但是zip文件没有创建,这将导致一些错误。
757
,然后脚本第一次发挥了作用。