能触发浏览器下载的url有两类:
-
response header——指定了Content-Disposition为attachment,它表示让浏览器把响应体作为附件下载到本地 (一般Content-Disposition还会指定filename, 下载的文件默认就是filename指定的名字)
-
response header——指定了Content-Type 为 application/octet-stream(无类型) 或者 application/zip(下载zip包时)以及其它几个不常见类型 (其中还有浏览器差异),其中 application/octet-stream表示http response为二进制流(没指定明确的type), 需要下载到本地, 由系统决定或者用户手动指定打开方式。
在这种前提下,只需要浏览器请求了这个地址,都会自动下载,具体的方式如下:
1. iframe——加载请求此地址时会自动下载 ,使用的时候把iframe设置为display;none即可(而对 pdf/mp3 之类文件是直接打开)
<iframe name="hehe" src='下载url'></iframe>
2. a——点击请求此地址时会自动下载
<a href