我在通过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+");
我得到的是chrome显示
No data received
Error code: ERR_EMPTY_RESPONSE
我已经做了phpinfo()
来检查我有ssh2。启用了sftp包装器。我正在运行PHP v4.4.0
和libssh2 v1.2.7
。
任何建议都将非常感谢!
您运行的是旧版本的php。你有什么特别的原因不能升级吗?
我打赌这个问题与你运行的是这么旧的版本有关。考虑到这一点,使用phpseclib(一个纯PHP SFTP实现)可能会更成功。您需要PHP_Compat让它与php4一起工作,但假设您已经安装了它(并且在include_path
中安装了phpseclib),它应该可以正常工作。
示例代码:
<?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');
?>