ZipArchive :: close返回false

时间:2012-10-16 22:18:20

标签: php zip

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

        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的文件夹具有可写权限

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

1 个答案:

答案 0 :(得分:1)

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