fopen通过ssh2 sftp包装导致chrome ERR_EMPTY_RESPONSE

时间:2014-07-01 14:07:36

标签: php ssh sftp

我在通过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.0libssh2 v1.2.7

任何建议都将不胜感激!

1 个答案:

答案 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');
?>