从URL或HttpUrlConnection获取下载文件名?

时间:2012-11-17 23:44:05

标签: java url download httpurlconnection

在Firefox中从以下URL下载文件(Eclipse的win32 zip)时,文件名为eclipse-jee-juno-SR1-win32.zip

http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/juno/SR1/eclipse-jee-juno-SR1-win32.zip&url=http://download.eclipse.org/technology/epp/downloads/release/juno/SR1/eclipse-jee-juno-SR1-win32.zip&mirror_id=1

但是,Content-disposition标头中未指定此文件名,这是获取服务器建议文件名的标准方法。

在这里,eclipse的下载只是一个例子。我看到文件名是URL的一部分,但有没有另一种方法来获取文件名?在这种情况下,我可以使用正则表达式从URL中提取文件名,但不保证在没有Content-disposition标头的情况下,它不是每个URL的一部分。

问题:如果没有Content-disposition标头,如何获取下载文件名?或者,更加本地化,​​Firefox如何提出上述名称?

或者Firefox只是在这里解析URL,我遇到过这样一种情况:尽管从间接的,脚本提供的下载中提取文件名,它仍然可以正常工作?

1 个答案:

答案 0 :(得分:1)

内容处置是服务器建议文件名的标准方法。在没有内容处置标题的情况下,完全取决于客户端提出文件名。最常见的选择是采用路径的最后一段。

在没有内容处置标题的情况下,服务器甚至没有真正说网址应该下载到文件而不是显示。只是大多数浏览器默认将文件保存为无法显示的内容。