我在通过SFTP上传文件时遇到问题。这是我的代码:
$connection = ssh2_connect("ftp.mysite.com", 22);
ssh2_auth_password($connection, "username", "password");
$sftp = ssh2_sftp($connection);
$file = "/full/path/to/file.txt";
$stream = fopen("ssh2.sftp://{$sftp}$file", "w+");
我得到的只是铬说
No data received
Error code: ERR_EMPTY_RESPONSE
我已经完成了phpinfo()
以检查我是否启用了ssh2.sftp包装器。我正在运行PHP v4.4.0
和libssh2 v1.2.7
。
任何建议都将不胜感激!
答案 0 :(得分:1)
您正在运行旧版本的php。你有什么特别的理由不能升级吗?
我敢打赌这个问题与你运行这么老版本的事实有关。鉴于此,您可能会在phpseclib, a pure PHP SFTP implementation获得更好的成功。您需要 PHP_Compat 才能使用php4,但假设您安装了它(并且它和 phpseclib 都在include_path
中)它应该可以工作很好。
示例代码:
<?php
include('Net/SFTP.php');
$sftp = new Net_SFTP('ftp.mysite.com');
if (!$sftp->login('username', 'password')) {
exit('Login Failed');
}
// puts a three-byte file named /full/path/to/file.txt on the SFTP server
$sftp->put('/full/path/to/file.txt', 'xxx');
?>