我正在尝试创建一些图像文件的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."
}
任何人都可以在我的代码中看到致命的缺陷吗?如果你愿意,我可以粘贴更多(比如我创建初始数组)。
答案 0 :(得分:3)
任何人都可以在我的代码中看到致命的缺陷吗?
是
$zip->open($zip_name, ZipArchive::CREATE);
无效,您没有检查错误。
应该是
$res = $zip->open($zip_name, ZipArchive::CREATE);
if($res){
foreach ($valid as $zip_item) {
$zip->addFile($zip_item);
}
$zip->close();
} else {
echo "Error creating zip file: " . $res;
}
如果一切正常,$res
将是真的,继续前进,等等。
如果没有,它有一个these values。检查一下,你会发现错误。
在你的代码中,你正在做
$zip->addFile($zip_item);
但是没有创建zip文件,会导致一些错误。
答案 1 :(得分:1)
信不信由你,我的问题不是在我的脚本中,而是在我的文件/文件夹权限中。由于我有权首先上传文件,我以为我可以用这个文件写,但不,我必须更新它对757
的权限然后脚本工作了魅力第一次。