【发布时间】:2016-11-13 16:59:48
【问题描述】:
我正在尝试使用 http 链接下载文件。 这是代码:
downloadFile: function (fileName, url) {
var link = document.createElement('a');
link.setAttribute('download', fileName);
link.setAttribute('type', 'application/octet-stream');
link.target = '_blank';
link.href = url;
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
这适用于 Chrome 和 Edge,但不适用于 Firefox。 当我尝试下载文本文件或图像时,浏览器会打开一个新选项卡,其中包含呈现的文件内容。我需要浏览器打开默认下载窗口。
有可能吗?
这是我使用的 URL 示例:http://localhost:17671/docstmp/528d149e37467a53faeeeb0556901d87/ToDo.txt
我创建了这个 jsfiddle 来演示:jsfiddle.net/hp7yod85
【问题讨论】:
-
正常的下载链接不行吗?
-
包含
link.setAttribute('type', 'application/octet-stream'); link.target = '_blank';的目的是什么? -
没有目标,文件内容与我的应用程序在同一页面中打开。并且类型是测试尝试下载
-
我不能使用普通链接,因为服务器会返回动态的 URL,它不是静态链接
-
type属性似乎不是必需的。文件文件不应打开,但应显示Save File对话框。可以创建一个jsfiddlejsfiddle.net来演示吗?
标签: javascript firefox downloadfile