1

我正在尝试将文件从一台服务器 DL 到另一台服务器。

$ftpHandle = ssh2_connect('ftp.remoteServer.net', 22)
ssh2_auth_password($ftpHandle, $userName, $password)

成功连接并登录后,我运行以下命令:

$dir = "/dl";
$handledir = opendir($dir);

但当然,这失败了......我不知道为什么。它说该文件夹不存在。/dl 是远程服务器上的绝对路径。

我有一种感觉,“opendir”正在查看我的本地服务器(正在运行的服务器),而不是远程服务器。

这里的目标是查看此文件夹并 DL 文件夹中的每个文件。下载后,它可以将其从远程服务器上删除。

4

1 回答 1

1

重新阅读您的问题后,我认为问题在于,您没有告诉 opendir() 它应该在 SSH2 连接上运行。默认情况下,它是本地文件系统,但您希望它在您的 SSH 连接上运行。

要对 SSH 连接进行操作,首先初始化 SSH SFTP 子系统PHP 手册,然后通过 SSH2 SFTP 文件系统包装器访问资源:

$sftp = ssh2_sftp($ftpHandle);
$handledir = opendir("ssh2.sftp://$sftp$dir");
于 2011-07-12T13:42:26.267 回答