无法创建ZIP存档,但没有错误消息

时间:2014-09-05 14:10:47

标签: php zip

我正在尝试创建一些图像文件的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."
}

任何人都可以在我的代码中看到致命的缺陷吗?如果你愿意,我可以粘贴更多(比如我创建初始数组)。

2 个答案:

答案 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的权限然后脚本工作了魅力第一次。

相关问题