これは文字通り何時間も私を悩ませています。ファイルに出力するときにPHPのカールはデータをダウンロードできませんが、標準出力に出力するときはOKです
PHP cURLがファイルにデータをダウンロードしない理由がわかりません。 (CURLOPT_FILEはローカルファイルに設定されています)。データが取得されません。私は定期的に宛先ファイルのファイルサイズをチェックし、それは常にゼロです。あなたに背景を与えるために、私は90kbのjpegファイルをダウンロードしています(テスト目的のために)。
これは私のローカルコンピュータ(XP)で動作していますが、私が作業しているWebサイト(Windows Server 2003)では動作していません。
シナリオをさらに奇妙にするいくつかのテストを行いました。
標準出力にカールによって返されたデータ、およびを印刷したバイナリデータを印刷するためのI無効CURLOPT_FILE。
以前は(サーバーがアクセス制御を実装しているため)ブロックされたWebサイトを経験していたので、Internet Explorerからファイルにアクセスしようとしましたが、そのファイルを確認できました。
以前にブロックされたダウンロードを経験しましたが、Internet Explorerからファイルをダウンロードしようとしましたがダウンロードされました。
ファイルはfopen( ''、 'w')で作成されますが、サイズは0のままです。このファイル作成に成功したにもかかわらず、PHPがファイルシステムの書き込み権限に問題があると思われ、管理者以外のユーザーであってもまだダウンロードはありません。
誰にでもこれが発生しましたか?
何か指摘します。私は本当に立ち往生している。
ありがとうございます。
ここで私が設定カールオプションです:
$connection = curl_init($src);
// If these are not set, curl_exec outputs data.
// If these are set, curl_exec does not send any data to the file
// pointed to by $file_handler. $file_handler is not null
// because it is opened as write (non-existing file is created)
curl_setopt($connection, CURLOPT_RETURNTRANSFER, true);
curl_setopt($connection, CURLOPT_FILE, $file_handler);
がPS:私は、ブラウザのコマンドラインを使用してこれらのテストをやっていないよが。
私はまだこれを理解できません。その間、データを自分でファイルに保存しました。 RETURNTRANSFERがtrueに設定されているため、バイトはカールから戻されました。これらはfwriteを使ってファイルに書き出されました。 私は本当にこれを避けて、cURLにバッファリングをさせたいと思いましたが(もしあれば)。 –