2015-02-24 156 views
0

我必須從Sftp服務器下載文件到本地機器。我正在使用phpseclib創建連接。它與Sftp服務器連接。但我必須從服務器下載一個文件到本地機器。我怎樣才能做到這一點。我正在使用此代碼將dummy.txt從遠程服務器下載到本地計算機。請幫助如何將文件從Sftp服務器下載到本地機器

public function startProcess() { 

    $sftp = new Net_SFTP('www.domain.com'); 

    if (!$sftp->login('username', 'password')) { 
     exit('Login Failed'); 
    } 
    else { 
     echo "connected"; 
    } 

    echo $sftp->pwd() . "\r\n"; 
    downloadfiles('/path to server/dummy.txt');  
} 

public function downloadfiles($filename) 
{ 
    if($filename) 
    { 
     $remote=file_get_contents($filename); 
     $local_file_path='localpath/adobe.txt'; 
     file_put_contents($local_file_path,$remote); 
    } 
    else 
    { 
     echo "error download files"; 
    } 

} 

請幫我找出答案。

+1

哦,不!您的Enter鍵似乎卡住了! – 2015-02-24 08:17:19

+0

本機是運行php腳本還是在單獨的服務器上運行? – jeroen 2015-02-24 08:21:35

+0

這是本地機器。 – Rupzz 2015-02-24 08:23:35

回答

1

那麼你沒有在任何地方做$sftp->get()

下面是你的代碼的重新工作版本進行下載:

global $sftp; 

public function startProcess() { 

    $sftp = new Net_SFTP('www.domain.com'); 

    if (!$sftp->login('username', 'password')) { 
     exit('Login Failed'); 
    } 
    else { 
     echo "connected"; 
    } 

    echo $sftp->pwd() . "\r\n"; 
    downloadfiles('/path to server/dummy.txt');  
} 

public function downloadfiles($filename) 
{ 
    if($filename) 
    { 
     $local_file_path='localpath/adobe.txt'; 
     $sftp->get($filename, $local_file_path); 
    } 
    else 
    { 
     echo "error download files"; 
    } 

} 
相關問題