2

您好我正在尝试创建一个新的 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 的文件夹具有可写权限

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

4

1 回答 1

1

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

于 2012-12-10T14:18:40.293 回答