1
Curlを使用してFTPサーバーからファイルをダウンロードしようとしています。私は私のブラウザにURLを貼り付けることができ、それは正常にダウンロードされます。問題は、CurlとPHPでは、FTPサーバーがリダイレクトを実行していて、Curlがフォローしないと考えていることです。 「サーバーが指定されたディレクトリに変更することを拒否しました」というエラーメッセージが表示されます。Curl with PHPを使用してFTPからファイルをダウンロード
EDIT:コードに%2fがあり、削除されました。それは以前のテストからのものです。
私のコードは次のとおりです。
$curl = curl_init();
$file = fopen("temp.zip", 'w');
curl_setopt($curl, CURLOPT_URL, "ftp://idx.living.net/idx_fl_ftp_down/idx_naples_dn/naples_data.zip");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_FILE, $file);
curl_setopt($curl, CURLOPT_FTPSSLAUTH, CURLFTPAUTH_SSL);
curl_setopt($curl, CURLOPT_USERPWD, "myusername:mypassword");
curl_exec($curl);
echo curl_error($curl);
ファイルをダウンロードする際に、ブラウザが行うように動作するためにカールを強制する方法?
FTPサーバーがリダイレクトを行うことができると聞いたことはありません。これは通常、FTPプロトコルではなくHTTPプロトコルの機能です。 – hakre
私は、FTPプロトコルにHTTPのようなリダイレクト応答がないと思います。これはおそらくあなたの問題ではありません。 wiresharkでftp接続を盗聴して、何が起こっているのかを正確に確認してください。 –
パスの '/%2fidx_fl_ftp_down /'部分は有効ですか? '/ idx_fl_ftp_down /'だけではないのでしょうか? '%2f'は'/'のURLエンコーディングです。私はそれが無効/存在しないディレクトリに変更しようとしている可能性があると思う。 – drew010