我正在尝试将文件传输到共享托管帐户(godaddy),但失败了:
警告:ssh2_scp_send():创建远程文件失败:无法发送“本地/文件/路径”中的文件
我已经安装了 SSH2 并且连接正常。我什至运行了 ssh2_exec 命令来查看是否可以影响远程服务器,并且我能够创建一个目录。我还成功地在命令行上直接使用 scp 进行双向...作为进一步的故障排除尝试,我反转了文件路径并创建了一个远程服务器文件以供其尝试下载,但出现此错误:
无法打开流:没有这样的文件或目录
我打电话给主机以确保我使用正确的绝对文件路径,我尝试了很多变体,但仍然收到此错误。我认为我的问题出在远程文件路径的某个地方。
问题代码如下:
$localpath=$_SERVER['DOCUMENT_ROOT'].'/local_file_path/' ;
$remotepath = 'website.com/public_html/folder/' ;
$connection = ssh2_connect('website.com', 22);
ssh2_auth_password($connection,'username','password' );
ssh2_scp_send($connection,"$localpath"."SUCCESS.txt", "$remotepath"."SUCCESS.txt", 0644);
Run Code Online (Sandbox Code Playgroud)
我在尝试通过 PHP 使用 sftp 时也遇到问题。我在网络上的其他地方读到,您必须在文件路径上使用双引号,每当它们失败时,打印的路径就会显示正确,但也许我遗漏了一些东西?
更新
我使用 filezilla 通过 sftp 登录共享主机帐户,发现复制时,完整的 url 路径与登录时给出的常规 ftp 不同。我现在可以上传文件,但是,讽刺的是,我似乎还无法下载...我仍然收到有关无法在远程服务器上找到文件路径的错误。
小智 5
ssh2_scp_send 需要绝对路径,我通过使用pwd需要发送文件的位置解决了我的问题。~/也不起作用,它不是绝对路径。
此页面的底部评论http://www.php.net/manual/en/function.ssh2-scp-send.php指的是您可能遇到的问题。
我建议,使用phpseclib或 ssh2_sftp
有趣的话题:
| 归档时间: |
|
| 查看次数: |
15290 次 |
| 最近记录: |