【问题标题】:how can I extract zip files, which was uploaded by user?如何提取用户上传的 zip 文件?
【发布时间】:2020-02-28 15:08:16
【问题描述】:

所以,我想创建一个系统,用户在 zip 文件中上传 3d 模型的文件,并且可以显示、存储模型等

所以,我得到了这个文件,我把它永久地放到一个文件夹中,然后解压到另一个临时文件夹中,看看它是否是一个 3d 模型。

我试过这样:

                  $target_dir = "upload/";
                  $targetfilename = rand().$_FILES['file']['name'];
                  move_uploaded_file($_FILES['file']['tmp_name'], $target_dir.$targetfilename);

                  //unzip the file into temp folder
                  $tmp_dir = $target_dir.rand();
                  mkdir($tmp_dir);  
                  chmod($tmp_dir, 0777);
                  //chmod($targetfilename, 0777); //this not working, maybe isn't the right way

                  $zip = new ZipArchive;
                  $res = $zip->open($targetfilename);
                  if ($res === TRUE) {
                    // extract it to the path we determined above
                    $zip->extractTo($tmp_dir);
                    $zip->close();
                    echo 'SUCCESS';
                  } else {
                    echo 'ERROR';
                  }

我没有收到任何错误,但无法解压缩 zip。任何想法?我该如何解决这个问题?

【问题讨论】:

  • $target_dir.rand()
  • 我已经启用了ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); 的所有错误但我没有收到任何错误,只有当我想设置权限时$targetfilename
  • 我试图重写你在谈论@FunkFortyNiner 的部分,但没有做任何改变

标签: php file-upload zip chmod mkdir


【解决方案1】:

$targetfilename 不是在$target_dir 文件夹中吗?

如果是这样,改变 $res = $zip->open($targetfilename);

$res = $zip->open($target_dir.$targetfilename); 可能会解决您的问题。

【讨论】:

    猜你喜欢
    • 2014-04-16
    • 2011-09-21
    • 2011-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多