2017-02-12 112 views
0

我正在使用Phpseclib從遠程服務器中檢索文件。一切工作正常,但當我試圖壓縮文件夾下載。我使用下面的代碼創建的zip文件保持空白。我不知道如何使它工作。我的代碼有問題嗎?無法在遠程服務器中壓縮文件夾

$sftp = new Net_SFTP($host); 

if (!$sftp->login($user, $password)) { 
    exit('login failed'); 
} 

$sftp->mkdir($zipfolder); 
$sftp->put($zipfolder.'/'.$file, $sftp->get($file)); 

$sftp->enablePTY(); 
$sftp->exec('cd '.$filepath.' && zip '.$zipfilename.' '.$zipfolder); 
+0

'sftp'本身不支持EXEC。你需要'ssh'來執行'exec()'。 – Jakuje

+0

@Jakuje - 在phpseclib中'SFTP'擴展了'SSH2'。因此,它繼承了所有相同的方法。 – neubert

+0

@neubert確實如此,但如果您沒有SSH訪問該服務器的權限,則無法通過SFTP協議執行任何操作。它不支持執行特定的命令。 – Jakuje

回答

1

要ZIP目錄,你應該寫:

$sftp->exec('cd '.$filepath.' && zip -r '.$zipfilename.' '.$zipfolder); 
+0

我試過再次使用$ sftp-> exec函數。顯然,我們可以直接使用SFTP來調用SSH功能。我無法使用該命令壓縮文件,因爲zip命令不在我的COPSSH中。添加zip命令後,上面的代碼工作得很好。感謝Adam! – kherP

相關問題