如果有包含下载文件名的直接URL,这项工作就完美了。
但有时某些URL会动态生成文件。所以URL没有文件名,但在请求该URL后,某个网站动态创建文件,然后打开/保存对话框。
例如某些链接即时生成pdf文件。
如何处理此类网址?
答案 0 :(得分:0)
如果您可以控制服务器代码,那么您可以确保它将Content-Disposition标头添加到HTTP响应中,例如:
Content-Disposition: attachment; filename=<put your filename here>
然后,您可以在客户端上查找该标头,以决定在后台下载该文件。
即使您无法控制服务器代码,也请检查HTTP响应是否已包含此标头。我相信这是大多数浏览器寻找的标准标题,以便知道如何下载文件。
This page表示使用Content-Disposition标头的一些准则,包括以下内容:
文件名应为US-ASCII 字符集。
文件名不应该有 任何目录路径信息 指定。
文件名不应该是 尽管如此,用双引号括起来 大多数浏览器都支持它。
Content-Type标头应该在之前 内容处置。
内容类型 标题应该指未知 MIME类型(至少在较旧版本之前 浏览器消失了。
Scott Hanselman也有a small article on using this header。