【问题标题】:Get download file name from URL or HttpUrlConnection?从 URL 或 HttpUrlConnection 获取下载文件名?
【发布时间】:2012-11-06 07:41:42
【问题描述】:

在 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,我遇到过这样的情况,尽管从脚本交付的间接下载中提取了文件名,但它恰好可以工作?

【问题讨论】:

    标签: java url download httpurlconnection


    【解决方案1】:

    内容处置是服务器建议文件名的标准方法。在没有内容处置标头的情况下,完全由客户端提供文件名。最常见的选择是走路径的最后一段。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-15
      • 1970-01-01
      • 2019-10-25
      • 2016-01-03
      • 1970-01-01
      • 2010-10-10
      • 1970-01-01
      • 2018-05-30
      相关资源
      最近更新 更多