我继承了一些使用SSH2的代码,我们移至新服务器。它在PHP 5.6下运行。我似乎无法使它正常工作。我可以连接,但无法打开远程目录。下面是我得到的错误,下面的代码。
PHP警告:fwrite()期望参数1为资源,给定布尔值
function fileSend($localFile, $fileName){
$connection = ssh2_connect(AutoPayFTPServer, 22);
$connOK = ssh2_auth_password($connection, AutoPayLogin, AutoPayPassword);
$sftp = ssh2_sftp($connection);
$remoteDir = AutoPayDirectory;
$remoteFile = "$remoteDir$fileName";
$sftp_fd = intval($sftp);
if (!is_dir("ssh2.sftp://$sftp_fd$remoteDir")) {
mkdir("ssh2.sftp://$sftp_fd$remoteDir");
}
$rfp = fopen("ssh2.sftp://$sftp_fd$remoteFile", 'w');
$lfp = fopen($localFile, "r");
while (!feof($lfp)) {
$data = fread($lfp, 8192);
fwrite($rfp, $data);
}
fclose($lfp);
fclose($rfp);
}
编辑:我与远程站点的所有者进行了交谈。他们看到正在登录,而没有文件上传。这样就确认了连接。我还从服务器的命令中手动运行了SFTP,并且连接正常。