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マニュアルを初期化し、次にSSH2SFTPファイルシステムラッパーを介してリソースにアクセスします。

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