douliang4858 2016-03-11 14:49
浏览 78

PHP - 无法解压缩上传的文件

I'm running 2 simple function:

<?php
    $zipUrl = "path_of_original.zip"
    $zipFilename = "local_path_and_name_of.zip"
    $unzipPath = "destination_of_unzipped_files"

    upload_archive ($zipUrl, $zipFilename);
    unzip_archive ($zipFilename, $unzipPath);
?>
  • the 1st, upload a .zip archive on server

    function upload_archive ($zipUrl, $zipFilename){
        define('BUFSIZ', 4095);
        $rfile = fopen($zipUrl, 'r');
        $lfile = fopen($zipFilename, 'w');
    
        while(!feof($rfile))
            fwrite($lfile, fread($rfile, BUFSIZ), BUFSIZ);
    
        fclose($rfile);
        fclose($lfile);}
    
  • the 2nd, unzip the archive

    function unzip_archive ($zipFilename, $unzipPath){
        $zip = new ZipArchive;
        $res = $zip->open($zipFilename);
    
        if ($res === TRUE) {
            $zip->extractTo($unzipPath);
            $zip->close();
            echo 'success!';
        } else {
            echo 'error!';
        }
    }
    

when these 2 functions are executed separately everything's fine, but when executed in sequence I can't appreciate the output of the second function (unzip).

I think the problem is that the .zip file is still locked in write by the first function.

any Suggestions?

Angelo.

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 如何在scanpy上做差异基因和通路富集?
    • ¥20 关于#硬件工程#的问题,请各位专家解答!
    • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
    • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
    • ¥30 截图中的mathematics程序转换成matlab
    • ¥15 动力学代码报错,维度不匹配
    • ¥15 Power query添加列问题
    • ¥50 Kubernetes&Fission&Eleasticsearch
    • ¥15 報錯:Person is not mapped,如何解決?
    • ¥15 c++头文件不能识别CDialog