当我访问链接时,例如:https://demo.com/report?transType=xls它会返回xls给我下载。这是响应标题:
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
内容类型:text / html
如何使用PHP(CURL,Socket ...)将此文件下载到我的服务器?我试过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 :(得分:0)
要在php中使用curl下载文件,你必须使用类似的代码:
<?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);
?>