如何提取用户上传的zip文件?

时间:2019-11-02 18:37:31

标签: php file-upload zip chmod mkdir

因此,我想创建一个系统,用户可以在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';
                  }

我没有收到任何错误,但是无法解压缩。任何想法?我该如何解决?

1 个答案:

答案 0 :(得分:0)

[{'faceAttributes': {'emotion': {'anger': 0.0, 'contempt': 0.0, 'disgust': 0.0, 'fear': 0.0, 'happiness': 0.0, 'neutral': 0.999, 'sadness': 0.001, 'surprise': 0.0}}, 'faceId': '430ca5d7-7ec8-41d8-9bbe-466dc4f4894b', 'faceRectangle': {'height': 91, 'left': 87, 'top': 49, 'width': 91}, 'file': 'E:\\PythonProjects\\stack_overflow\\data\\sad\\sad_face.jpg'}, {'faceAttributes': {'emotion': {'anger': 0.001, 'contempt': 0.004, 'disgust': 0.0, 'fear': 0.0, 'happiness': 0.0, 'neutral': 0.511, 'sadness': 0.485, 'surprise': 0.0}}, 'faceId': '0db74fa5-32ee-4c59-9c5c-a5cbc82432f6', 'faceRectangle': {'height': 160, 'left': 86, 'top': 0, 'width': 168}, 'file': 'E:\\PythonProjects\\stack_overflow\\data\\sad\\sad_face1.jpg'}, {'file': 'E:\\PythonProjects\\stack_overflow\\data\\sad\\sad_face2.jpg'}, {'faceAttributes': {'emotion': {'anger': 0.002, 'contempt': 0.015, 'disgust': 0.0, 'fear': 0.0, 'happiness': 0.005, 'neutral': 0.855, 'sadness': 0.122, 'surprise': 0.0}}, 'faceId': '9e91a58e-f229-4932-b3d2-90ec5885be7d', 'faceRectangle': {'height': 190, 'left': 24, 'top': 31, 'width': 157}, 'file': 'E:\\PythonProjects\\stack_overflow\\data\\sad\\sad_face3.jpg'}, {'faceAttributes': {'emotion': {'anger': 0.0, 'contempt': 0.0, 'disgust': 0.0, 'fear': 0.0, 'happiness': 0.0, 'neutral': 0.249, 'sadness': 0.75, 'surprise': 0.0}}, 'faceId': '8096041e-a490-463a-8fa6-343f756bd19a', 'faceRectangle': {'height': 104, 'left': 95, 'top': 58, 'width': 104}, 'file': 'E:\\PythonProjects\\stack_overflow\\data\\sad\\sad_face4.jpg'}, {'faceAttributes': {'emotion': {'anger': 0.0, 'contempt': 0.0, 'disgust': 0.001, 'fear': 0.063, 'happiness': 0.0, 'neutral': 0.063, 'sadness': 0.872, 'surprise': 0.001}}, 'faceId': 'd2da0dba-efce-46a3-be78-47bedf3a7a38', 'faceRectangle': {'height': 163, 'left': 18, 'top': 41, 'width': 163}, 'file': 'E:\\PythonProjects\\stack_overflow\\data\\sad\\sad_face5.jpg'}, {'faceAttributes': {'emotion': {'anger': 0.004, 'contempt': 0.006, 'disgust': 0.0, 'fear': 0.0, 'happiness': 0.002, 'neutral': 0.944, 'sadness': 0.043, 'surprise': 0.0}}, 'faceId': '5bcb28fa-0d28-46a6-8145-7e9ad4ee9316', 'faceRectangle': {'height': 159, 'left': 58, 'top': 21, 'width': 159}, 'file': 'E:\\PythonProjects\\stack_overflow\\data\\sad\\sad_face6.jpg'}, {'faceAttributes': {'emotion': {'anger': 0.001, 'contempt': 0.007, 'disgust': 0.0, 'fear': 0.0, 'happiness': 0.0, 'neutral': 0.321, 'sadness': 0.671, 'surprise': 0.0}}, 'faceId': '160fae25-56cd-483f-b7ce-2f74891c75a3', 'faceRectangle': {'height': 228, 'left': 0, 'top': 6, 'width': 182}, 'file': 'E:\\PythonProjects\\stack_overflow\\data\\sad\\sad_face7.jpg'}] 不在$targetfilename文件夹中吗?

如果是,请更改 $target_dir

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