php - 通过ssh2 sftp包装程序进行fopen会导致Chrome ERR_EMPTY_RE

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

相关文章:

session - 保持 session 状态

windows - 从Windows终端远程运行Unix脚本并传回提示

security - Grails 中的真实性 token

grails - Grails命令对象和输入名称值

Perl - 通过包含 require 指令的 SSH 远程运行脚本

gwt - 使GWT和Grails与Atmosphere插件一起工作

ssh - GitLab ssh 到本地用户的主机名导致 "fatal: Could not rea

grails - 如何使Grails条件作为左联接执行?

grails - 为grails支架禁用sitemesh吗?

sockets - 通过Network.Browser进行Socks5连接