【问题标题】:ZipArchive::close returns falseZipArchive::close 返回 false
【发布时间】:2012-10-16 22:18:20
【问题描述】:

您好,我正在尝试创建一个新的 zip 文件,我已经重新编译了启用 ZIP 的 PHP,这是我的代码

        if($_SERVER['REQUEST_METHOD'] == "POST"){ 
          $zip = new ZipArchive;     
          if($zip->open("/home/user1joe/public_html/upload/test.zip",ZIPARCHIVE::CREATE)!= true)  {
                 echo "error file did not up upload";
                 exit(0);
          }
          foreach ($_FILES["images"]["error"] as $key => $error) 
                  if ($error == UPLOAD_ERR_OK) {
                        $temp_name = $_FILES["images"]["tmp_name"][$key];
                        $new_name  = $_FILES['images']['name'][$key];
                        var_dump($temp_name);
                        var_dump($new_name); 

                        if(file_exists($temp_name)){
                              $zip->addFile($temp_name,$new_name);
                              move_uploaded_file($temp_name, "upload/".$new_name);
                        } else
                              echo "error file does not exist"; 

                        echo "numfiles: " . $zip->numFiles . "\n";
                        echo "status:" . $zip->status . "\n";
                  }
          $res = $zip->close();
          var_dump($res);
          }

$zip->close() 返回 false 并且没有创建 zip。

  • 我没有遇到任何错误
  • $zip->numFiles 显示存档中有文件
  • 我要创建zip的文件夹有可写权限

我有点迷失了我可以测试的其他东西,任何想法都会很棒!

【问题讨论】:

  • 存档前不应该有 move_uploaded 文件吗?
  • $zip->close() 返回 false 表示无法保存 zip 文件。您可能没有足够的权限在您尝试的位置创建文件。
  • 大家好,抱歉,这有点令人困惑。 move_upload 只是为了测试我确实有权在与我想要放置 zip 的位置相同的位置创建文件。文件存储在 $_FILES["images"]["tmp_name"][$key] 位置。
  • 但 zip 文件可能与 move_uploaded_files 不在同一目录中。一个路径是相对的,另一个是绝对的
  • 我仔细检查了一下,它们在同一个位置。我放弃了这个策略并使用了一个 shell 命令

标签: php zip


【解决方案1】:

zip->close() 方法进行一些处理(实际压缩,或者只是获取/写入文件属性),这需要添加到存档的文件存在。 但是,您正在使用 move_uploaded_file() 调用从原始位置删除输入文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-13
    • 1970-01-01
    • 1970-01-01
    • 2019-06-27
    相关资源
    最近更新 更多