2015-04-08 95 views
-1

嗨我需要使用ftp下載zip文件,然後在本地計算機上解壓縮。我可以使用ftp_get下載文件,但我需要將它解壓到特定位置。PHP解壓縮本地文件

 $ftpServer = "server"; 
     $ftpUser = "user"; 
     $ftpPassword = "password"; 

     $ftp_server = $ftpServer; 
     $ftp_conn = ftp_connect($ftp_server); 
     $ftp_login = ftp_login($ftp_conn, $ftpUser, $ftpPassword); 

     if(!$ftp_conn) 
      die("A connection to $ftpServer couldn't be established"); 
     else if(!$ftp_login) 
      die("Your login credentials were rejected"); 
     else 
     { 
      $file = "C:/files/downloads/FILE_NAME.ZIP"; 

      $server_file = "/FILE_NAME.ZIP"; 

      if (ftp_get($ftp_conn, $file, $server_file, FTP_ASCII)) 
      { 

       $zip = new ZipArchive; 
       $res = $zip->open($file); 

       if ($res === TRUE) 
       { 
        $zip->extractTo('C:/files/Feeds/'); 
        $zip->close(); 
       } 

       unlink($file); 
      } 
      else 
      { 
       echo "There was a problem\n"; 
       $this->index(); 
      } 
     } 

謝謝你的幫助。

+0

你看過PHP的[ZipArchive](http://www.php.net/manual/en/class.ziparchive.php)嗎? –

+0

是的,我做了,但有些理由,它不適合我。 – user4676307

+1

如果你展示了一些你的代碼,那麼它可能會有幫助,所以我們可以看看你在做什麼,並試圖找出你做錯了什麼.....如果你不顯示你的代碼,我們所有可以做的是做野蠻的猜測,這浪費了我們的時間,並沒有幫助你 –

回答

1

與此代碼嘗試

Unzip.php: -

<?php 
$zip = new ZipArchive; 
if ($zip->open('/sites/gallery.zip') === TRUE) { 
    $zip->extractTo('/sites/New folder/test'); 
    $zip->close(); 
    echo 'ok'; 
} else { 
    echo 'failed'; 
} 
?> 

供您參考看看此鏈接Documentation

+0

我厭倦了這一點,它失敗了,但我知道路徑和文件名是正確的,不明白爲什麼它失敗。 – user4676307

+0

正在壓縮正確。我的意思是壓縮文件是好的? – RaMeSh

+0

做一件事手動解壓FILE_NAME.ZIP這個文件。 – RaMeSh

0

可以使用ZipArchive類此

$archive = new ZipArchive; 
if ($archive->open('my_zip_fil.zip') === TRUE) { 
    $archive->extractTo('destination/dir'); 
    $archive->close(); 
} 

ZipArchive documentation

+0

嗨謝謝你的幫助,但我試圖使用ziparchive,它不會提取文件出於某種原因或給我任何錯誤。 – user4676307