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

How to download file from Sftp server to local machine

我必须从 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";
    }

}

请帮我找一下

好吧,你没有在任何地方做 $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";
    }

}