繁体   English   中英

如何通过Content-Disposition阅读xls文件返回:PHP附件

[英]How to read xls file return by Content-Disposition: attachment with PHP

当我访问链接时,例如: 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);

请帮我 :(

要使用curl在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);
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM