通过phpseclib将文件上载到特定目录
您好,我在将文件上载到文件夹时遇到问题,我的代码如下:通过phpseclib将文件上载到特定目录,php,amazon-ec2,amazon,phpseclib,Php,Amazon Ec2,Amazon,Phpseclib,您好,我在将文件上载到文件夹时遇到问题,我的代码如下: set_time_limit(0); include('Net/SFTP.php'); include('Crypt/RSA.php'); $key = new Crypt_RSA(); $key->loadKey(file_get_contents('key/key.pem')); $sftp = new Net_SFTP('ec2-xx-xx-xx-xxx.compute.amazonaws.com'); if (!$sftp-&
set_time_limit(0);
include('Net/SFTP.php');
include('Crypt/RSA.php');
$key = new Crypt_RSA();
$key->loadKey(file_get_contents('key/key.pem'));
$sftp = new Net_SFTP('ec2-xx-xx-xx-xxx.compute.amazonaws.com');
if (!$sftp->login('root', $key)) {
exit('Login Failed');
}
else{
echo'Login Successfull';
}
echo '<br>';
print_r($sftp->nlist($sftp->chdir("new_folder")));
echo '<br>';
$sftp->put('file.txt', 'hello, world!');
感谢各位,我使用以下代码解决了此问题:
$success_t = $sftp->put($remote_directory . $temps_file,$local_directory . $temps_file);
您确定
new\u文件夹
存在吗?顺便说一句,chdir()
的返回值是一个布尔值,因此使用它作为nlist()
的第一个参数可能不会像您想象的那样工作。new_folder只是我在这个问题中给出的一个示例,它本来是不同的。您检查了->chdir()
的返回值吗?如果它是false
,它不会更改目录。是的,它更改了目录,但在下一个命令中,它又恢复为/root folder。奇怪的是,您的print\u r
输出了任何东西。当我试着像你那样做的时候,它什么也没做。它应该尝试向您显示/root/1
的内容(因为chdir
可能返回一个true
,该值被转换为'1'
)。由于/root/1
不存在,根据您的打印\u r
,您不应该得到任何输出。您得到的输出看起来更像我希望在/
中看到的,而不是/root/
。无论如何,请尝试启用日志记录。例如,define('NET_SFTP_LOGGING',3)代码>如果您可以将结果添加到您的源代码中。那会很有帮助的。
$success_t = $sftp->put($remote_directory . $temps_file,$local_directory . $temps_file);