浏览器如何在下载中找到文件名?
问题描述:
你可能会说它会查看Content-Disposition
作为文件名,但我正在谈论这个标题中什么都没有,并且URL也不是那么直截了当,如http://website.com/myfile.zip
。我在这里留下一些例子,但想知道如何浏览器(我使用FireFox)在save as dialog
找到正确的名称。它是否知道着名网站的URL语法?浏览器如何在下载中找到文件名?
download links in sourceforge.net
download links in cnet.com
download from your own localhost
我用Fiddler2
进行逆向工程。
URL:http://mesh.dl.sourceforge.net/project/npp-plugins/Function列表/ FunctionList插件V2.1/FunctionList_2_1_UNI_dll.zip
的Fiddler输出样本:
HTTP/1.1 200 OK
Date: Sat, 13 Nov 2010 22:46:31 GMT
Server: Apache/2.2.9 (Debian)
Last-Modified: Thu, 18 Feb 2010 04:35:26 GMT
ETag: "142a602c-1fe24-47fd87eed7f80"
Accept-Ranges: bytes
Content-Length: 130596
Connection: close
Content-Type: application/zip
EDIT:问题是Content-Disposition
没有被设置为最终响应,而不是在它的一个重定向。 HttpWebRespose
标题包含最后response header
(AllowAutoRedirec
t = true
)。我需要跟踪所有回复,并检查是否存在Content-Disposition
然后记住它。怎么样 ?
答
该做使用content-disposition
或任何其他标准的方法。请参阅使用Live HTTP Headers这个例子我刚刚从SourceForge得到:
HTTP/1.1 302 Found
X-Powered-By: PHP/5.2.9
Content-Disposition: attachment; filename="FunctionList_2_1_UNI_dll.zip"
Location: http://mesh.dl.sourceforge.net/project/npp-plugins/Function%20List/FunctionList%20Plugin%20v2.1/FunctionList_2_1_UNI_dll.zip
Content-Type: text/html
Content-Length: 0
Date: Sat, 13 Nov 2010 22:30:00 GMT
Server: lighttpd/1.4.26
注意,他们也使用重定向,也许你会受到该混淆。
答
如果它不是Content-Disposition标题的文件名属性,它可能包含一些HTTP 302重定向,或者带有文件下载的隐藏iframe
。
不,浏览器开发人员不使用为“着名”网站制作特殊代码。 – 2010-11-13 22:29:01