PHP 5.3.3(Linuxビルド)のftp_getを使用してFTPサーバーからファイルを取得しようとしています。 私はログインできますが、ファイルをリストできますが、ftp_getコマンドはファイルをダウンロードしません。ftp_getは失敗しますが、PHPによってエラーが報告されません
ここに私が使用しているコードがあります。
$ftp_user_name = DBUSER;
$ftp_user_pass = DBUSERPASS;
$ftp_server = HOST;
$local_file = "poutarde.odt";
$server_file = "poutarde.odt";
// set up a connection to ftp server
$conn_id = ftp_connect($ftp_server);
// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
// turn passive mode on
ftp_pasv($conn_id, true);
// try to download $server_file and save to $local_file
if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
echo "Successfully written to $local_file\n";
} else {
echo "There was a problem\n";
}
// close the connection
ftp_close($conn_id);
"poutarde.odt"ファイルはFTPのルートにあります。
クライアント(filezilla)からFTPのダウンロードを確認したところ、すべて正常に動作しました。 しかし、ftp_getを使用すると、何も得られません(「問題がありました」というエコーを除く)、PHPエラーはなく、ただ失敗します。
ありがとうございました。リノ
Wiresharkを使用してFTPセッションをスニッフィングし、PHPスクリプトが$ local_fileに書き込むことができることを確認します。 – Sjoerd
ftp_connectとftp_loginがfalseを返さないようにしたいかもしれません。あなたのコードは現在、接続とログインが成功したと仮定しています。 –
この問題は、コード自体の内容ではなく、不十分なファイルのアクセス許可が原因で発生したと思われるため、この質問を終了することにしました。 –