【问题标题】:PHP Unzip after FTP UploadFTP上传后PHP解压
【发布时间】:2016-03-16 02:52:34
【问题描述】:

我有这些通过 FTP 上传文件的代码行。上传后,我需要解压缩文件。遇到的问题是,文件已成功上传,但我无法解压缩。谁能帮我这个?

if(isset($_POST['submit'])){  
    $file = $_FILES['uploaded_file']['name'];
    $remote_file = $_FILES['uploaded_file']['name'];

    $ftp_server = "1xx.xx.xx.xx";
    $ftp_user_name = "xxuser";
    $ftp_user_pass = "xx2016";
    $toform2 = "FormType/Upload/";
    $tounzip2 = "Unzip/";

    // set up basic connection
    $conn_id = ftp_connect($ftp_server);

    // login
    $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
    ftp_pasv($conn_id, true);

    // upload the file 
    $ftype = substr ($file,0,2);
    if ($ftype == "F2") {
       ftp_chdir ($conn_id,$toform2);
       $upload = ftp_put($conn_id,$remote_file,$file,FTP_ASCII); 
       $file_path = $toform2;

      // check upload status 
      if($upload){ 
        // Unzip file
        $zip = new ZipArchive();            
        $x = $zip->open($toform2);
        if ($x === true) {
            ftp_chdir ($conn_id,$tounzip2);
            $zip->extractTo($tounzip2); 
            $zip->close();
            echo "success"."</br>";
         }else{
            echo "fail";
        }
        //echo "Uploaded $source_file to $ftp_server as $destination_file" ;
    }else{ 
        //echo "FTP upload has failed!" ;  
    } 


}

【问题讨论】:

  • ZipArchive 适用于本地文件,而不适用于 ftp 远程文件。

标签: php ftp unzip


【解决方案1】:

如果脚本对远程服务器具有 SSH 访问权限,您可以 ssh2-exec 远程脚本来解压缩文件。

SSH2-连接: http://php.net/manual/en/function.ssh2-connect.php

SSH2-执行: http://php.net/manual/en/function.ssh2-exec.php

首先使用 FTP 上传您的文件。 (SFTP 会更好)

打开 SSH 连接并远程执行解压缩命令。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-27
    • 2017-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-27
    相关资源
    最近更新 更多