【发布时间】:2023-03-17 10:10:02
【问题描述】:
我需要读取文件的大小,但服务器强制我先下载它。 我注意到其中一个响应标头是 Content-Type: application/force-download ,这似乎绕过了我的 curl 输入...
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch,CURLOPT_TIMEOUT,1000);
curl_exec($ch);
$bytes = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD);
curl_close($ch);
有什么想法吗?
【问题讨论】:
-
"Content-Type: application/force-download" 绝对没有 curl 的意义,它只会忽略它。该标头的目的可能是使浏览器无法识别它,因此与其尝试内联显示它,不如下载它。这就是说,现代浏览器通常会忽略 Content-Type,而是通过“嗅探”数据来确定内容......正如这个(过时的)互联网草案中所解释的:tools.ietf.org/html/draft-abarth-mime-sniff-06