我正在尝试使用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文件,还想知道如果文件夹中包含多个文件,该如何获取多个文件.
这是服务器结构的图片:
解决方法:
通常,当我使用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.