html – 如何使Safari和IE下载图像而不是新页面?

前端之家收集整理的这篇文章主要介绍了html – 如何使Safari和IE下载图像而不是新页面?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在Firefox和Chrome中,此链接属性“download = img.jpg”可以正常工作,并显示下载窗口,而不是新的选项卡或页面.
<a href="img.jpg" download="img.jpg">Download Image</a>

但是在Safari和IE中,这个链接给了我一个新的页面.

那么什么是简单有效的工作流程来处理这个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.

原文链接:https://www.f2er.com/html/230469.html

猜你在找的HTML相关文章