php发送文件到sftp

时间:2013-05-19 12:07:25

标签: php upload sftp

我正在尝试使用SFTP发送文件我在尝试上传文件时遇到错误。 远程文件夹的权限没问题。

$connection = ssh2_connect('10.0.10.245', 22);
ssh2_auth_password($connection, $ftp_user_name, $ftp_user_pass);
$sftp = ssh2_sftp($connection);
echo '<br>';
ssh2_scp_send($connection,$file,"/a.xml", 0644);
print_r(error_get_last());

我得到的错误是:

Array 
( 
    [type] => 2 
    [message] => ssh2_scp_send(): Failure creating remote file 
    [file] => /var/www/FP1/sendFTP.php 
    [line] => 93 
 ) 

有任何建议吗?

2 个答案:

答案 0 :(得分:4)

您启动SFTP会话(ssh2_sftp),而稍后使用SCP进行实际转移(ssh2_scp_send)。你绝对不需要ssh2_sftp行;它实际上可能是你问题的原因。

虽然从技术上讲,可以通过一个SSH连接同时拥有SFTP和SCP会话,但我不希望PHP支持这一点。虽然我不确定。

答案 1 :(得分:1)

您确定没有权限问题吗?

"/a.xml"表示您将文件放在根目录/下,该目录通常不会为您的ftp用户提供写入权限。