如何从Sftp服务器下载文件到本地机器

时间:2015-02-24 08:15:53

标签: php sftp phpseclib

我必须将文件从Sftp服务器下载到本地计算机。我正在使用phpseclib创建连接。它与Sftp服务器连接。但我必须从服务器下载文件到本地机器。我怎样才能做到这一点。我正在使用此代码将dummy.txt从远程服务器下载到本地计算机。请帮忙

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 个答案:

答案 0 :(得分: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";
    }

}