【发布时间】:2016-09-02 20:48:39
【问题描述】:
我需要从以 base64 格式返回文件数据的 API 获取文件。我将其添加到如下所示的<a href 标签中
<a id="myFile" href="data:image/png;base64,..." click="downloadFile()">Download File</a>
所以我想使用 $('#myFile').click() 触发文件下载,这将是 downloadFile() 函数,但我不能使用 location.href 因为我不希望页面被重定向。
这个要求有什么替代方案吗?任何建议都会有很大帮助。
注意:单击链接后,我将通过一些 ajax 响应动态获取 href 值,最初 href 设置为 # 并将替换为上述适当的可下载字符串。我想触发文件下载以及触发 ajax 请求的同一事件,而不是单独的点击事件。
【问题讨论】:
-
有限的浏览器支持。这是一个仅限 Chrome 的解决方案。 stackoverflow.com/a/15832662/5496966 .. 您还可以将应用程序类型从
data:image/png替换为data:application/octet-stream.. 它会强制浏览器下载而不是导航到 href 值。 -
也可以下载bin文件。您必须使用任何方法为其命名和文件类型。
-
真棒 Ankith。这真的奏效了。无论如何使它成为多浏览器。只需在常规答案中提及即可,将其标记为正确。感谢您的帮助。
-
认为您应该在标题中手动切换为自动切换。手动意味着用户必须点击链接来保存它
标签: javascript jquery