在Firefox和Chrome中,此链接属性“download = img.jpg”可以正常工作,并显示下载窗口,而不是新的选项卡或页面.
<a href="img.jpg" download="img.jpg">Download Image</a>
那么什么是简单有效的工作流程来处理这个Safari和IE浏览器?
解决方法
你在Apache服务器上工作吗?如果是这样,您可以将其添加到.htaccess文件中:
RewriteCond %{REQUEST_FILENAME} -f RewriteCond %{QUERY_STRING} fdl=1 RewriteRule .? - [T=application/octet-stream]
检查看它是一个文件
检查参数fdl = 1是否在querystring中
输出为八位字节流/强制下载
现在,当您希望浏览器开始下载该网站中的任何内容时,只需将参数放在url上:
<a href="img.jpg?fdl=1">Download Image</a>
在IIS Windows服务器上执行同样的操作将出站规则添加到web.config中:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <outboundRules> <rule name="Force Download"> <match serverVariable="RESPONSE_Content_Disposition" pattern=".?" negate="false" /> <action type="Rewrite" value="application/octet-stream" replace="true" /> <conditions> <add input="{QUERY_STRING}" pattern="fdl=1" /> </conditions> </rule> </outboundRules> </rewrite> </system.webServer> </configuration>
编辑(10/4/2016):
对于基于JavaScript /浏览器的实现,您可以查看FileSaver.js,这是一种用于在不支持它的浏览器中保存功能的聚合物填充.它没有完美的覆盖.
所有浏览器的下载属性也看起来都是not fully adopted.