php cURLライブラリを使用して作成されたhttp要求の生の添付ファイルを取得しようとしています。今、私はhtmlの応答を取得しますが、添付ファイルは取得しません。PHP cURLライブラリを使用してhttp応答ヘッダーを使用して添付ファイルを取得する方法
非常によく似た質問hereは、cURLオプション-jを使用しています。私はPHPのcURLライブラリで同等のset_optを見つけることができません。
ブラウザでリクエストすると、ヘッダー情報で目的の添付ファイルが参照され、ブラウザは自動的にダウンロードすることを知っています。私のスクリプトでは、添付ファイルの生データを変数にロードするだけで済みます。
添付ファイルのデータをphpの変数にロードするにはどうすればよいですか?
リモートサーバからのヘッダの応答:
Cache-Control:must-revalidate, post-check=0, pre-check=0
Content-Disposition:attachment; filename=exel_file.xls
Content-Length:65
Content-Transfer-Encoding:binary
Content-Type:application/download
Date:Thu, 30 Jun 2016 15:12:05 GMT
Expires:Mon, 26 Jul 1997 05:00:00 GMT
Last-Modified:Thu, 30 Jun 2016 16:33:14 GMT
Pragma:public
Server:Microsoft-IIS/7.5
X-Powered-By:PHP/5.2.17
私のPHPのcURLの要求:
$url = "https://subdomain.example.com?parameter=1";
$post = "post1=false&".
"post2=&".
"post3=false&".
"post4=&".
"post5=&".
"post6=1243123421";
$ch = curl_init($url);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookieFile);
curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookieFile);
curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$html = curl_exec($ch);
私はすでにhttps://subdomain.example.com/exel_file.xlsにして無駄に直接exel_file.xlsにアクセスしようとしました。
更新: 最終的にChromeデベロッパーツールで見つけたときにファイルに直接アクセスできました。私は "doc"へのネットワークレスポンスをフィルタリングし、添付ファイルに結び付けられたリクエストを見つけました。ファイルはhttps://subdomain.example.com/exel_file.xlsの代わりにhttps://example.com/exel_file.xlsにありました。
番号を行います。添付ファイルを変数にロードしようとしています。私が何をしようとしているのかというと、ポイント設定のヘッダはありません。あなたが提供するcURLのオプトをテストしましたが、結果を変更しません。しかし、それを見ていただきありがとうございます。 –