我在通过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
。最佳答案
您正在运行旧版本的php。您是否有无法升级的特定原因?
我敢打赌,这个问题与您运行的是旧版本有关。鉴于此,您可能会使用phpseclib, a pure PHP SFTP implementation获得更好的成功。您将需要PHP_Compat使其能够与php4一起使用,但是假设您已安装了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');
?>
关于php - 通过ssh2 sftp包装程序进行fopen会导致Chrome ERR_EMPTY_RESPONSE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24512344/