编程语言
首页 > 编程语言> > 使用phpseclib Net_SFTP.get下载文件夹不起作用

使用phpseclib Net_SFTP.get下载文件夹不起作用

作者:互联网

我正在尝试使用phpseclib访问SFTP文件夹服务器中的文件.但是,当我尝试使用$sftp-> get时,它返回false.我完全不确定如何调试问题.

public function get_file_from_ftps_server()
{
    $sftp = new \phpseclib\Net\SFTP(getenv('INSTRUM_SERVER'));
    if (!$sftp->login(getenv('INSTRUM_USERNAME'), getenv('INSTRUM_PASSWORD'))) {
        exit('Login Failed');
    }

    $this->load->helper('file');           
    $root  = dirname(dirname(__FILE__));
    $root .= '/third_party/collections_get/';
    $path_to_server = 'testdownload/';
    $result = $sftp->get($path_to_server, $root);

    var_dump($result);
}

在$result中,我得到了一个错误,并且我不确定为什么会这样,我阅读了他们的文档,但仍然不确定.根目录是我想要存储我的信息的目录.现在,我只在其中添加了一个trial.xml文件,还想知道如果文件夹中包含多个文件,该如何获取多个文件.

这是服务器结构的图片:

structure

解决方法:

通常,当我使用sftp时,通常会更改目录,然后尝试下载信息.

$sftp->pwd(); // This will show you are in the root after connection.
$sftp->chdir('./testdownload'); // this will go inside the test directory.
$get_path = $sftp->pwd()
//If you want to download multiple data, use
$x = $sftp->nlist();
//Loop through `x` and then download the file using.
$result = $sftp->get($get_path); // Normally I use the string information that is returned and then download using

file_put_contents($root, $result);

// Root is your directory, and result is the string.

标签:sftp,phpseclib,php
来源: https://codeday.me/bug/20191025/1929485.html