2017-03-17 17 views
0

リンクにアクセスすると、https://demo.com/report?transType=xlsなどのリンクにアクセスすると、xlsをダウンロードして返します。これは、レスポンスヘッダです:xlsファイルを読む方法Content-Disposition:PHPの添付ファイル

HTTP/1.1 200 OK 
Date: Thu, 16 Mar 2017 19:18:37 GMT 
Server: IIS/4.0 (Windows XP) 
Content-Disposition: attachment; filename*="utf-8''demo.xls 
Vary: Accept-Encoding,User-Agent 
Content-Length: 14848 
Keep-Alive: timeout=10, max=1000 
Connection: Keep-Alive 

のContent-Type:text/htmlの

私は私のサーバーの使用PHP(CURL、ソケット...)にこのファイルをダウンロードすることができますどのように?私はCURLを試みましたが、うまくいきません。保存したファイルは、それは私のコードです:(読み取ることができません。

$op = curl_init(); 
curl_setopt ($op, CURLOPT_URL, 'https://demo.com/report?transType=xls'); 
curl_setopt ($op, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt ($op, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt ($op, CURLOPT_TIMEOUT, 60); 
curl_setopt ($op, CURLOPT_POST, 1); 
curl_setopt ($op, CURLOPT_SSL_VERIFYPEER, 0); 
curl_setopt ($op, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt ($op, CURLOPT_BINARYTRANSFER, 1); 

$response = curl_exec($op); 
@file_put_contents('saved.xls', $response); 

私を助けてください:(

答えて

0

をPHPでカールを使用してファイルをダウンロードするにはあなたがそうのようなコードを使用する必要があります。

<?php 
//File to save the contents to 
$fp = fopen ('theFile.xls', 'w+'); 
$url = "https://demo.com/report?transType=xls"; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_TIMEOUT, 60); 
//give curl the file pointer so that it can write to it 
curl_setopt($ch, CURLOPT_FILE, $fp); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
$data = curl_exec($ch);//get curl response 
//done 
curl_close($ch); 
fclose($fp); 
?> 
+0

ありがとうございます:) – AskToBeAsked

関連する問題