为了账号安全,请及时绑定邮箱和手机立即绑定

如何在不使用带有下载属性的<a>元素或服务器的情况下下载文件?

如何在不使用带有下载属性的<a>元素或服务器的情况下下载文件?

MYYA 2019-09-06 16:29:37
根据caniuse,在Microsoft Edge build 10547+中支持元素的download属性,但不支持IE或Safari。<a>如何在不使用<a>带download属性集的元素或服务器的情况下下载文件对象?
查看完整描述

3 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

有许多方法可以触发下载。以下是一些:


使用表格:


<form method="get" action="mydoc.doc">

<button type="submit">Download</button>

</form>

使用javascript:


<button type="submit" onclick="window.open('mydoc.doc')">Download</button>


查看完整回答
反对 回复 2019-09-06
?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

  1. 如果文件非常小,您可以使用ahref='data:[<mediatype>][;base64],<data>'

    这可以允许您在mediatype模拟HTTP标头中添加内容处置。

  2. 在中小型文件中,可以使用AJAX下载文件,然后使用Javascript File API来提示文件保存(API不支持保存,但很容易将数据转换为数据URL)。

    如果您想避免使用Javascript File API,可以尝试模拟锚点击,如此处所示。

再次,正如Leo Farmer所指出的,这些解决方案不能保证浏览器不会在新选项卡中打开文件而不是将其保存到磁盘,但我认为可以安全地说所有用户都可以优雅地降级为cmd+Sctrl+S键盘快捷键:-)


查看完整回答
反对 回复 2019-09-06
?
跃然一笑

TA贡献1826条经验 获得超6个赞

您可以使用download属性和jquery执行此操作。下载属性不支持ie和safari / ios。所以你可以使用jquery来做到这一点


 $('.download').click(function(e) {

    e.preventDefault();  //stop the browser from following

    window.location.href = 'uploads/file.doc';

});


<a href="no-script.html" class="download">Download</a>


查看完整回答
反对 回复 2019-09-06
  • 3 回答
  • 0 关注
  • 683 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信