javascript - 在 IE 11 中从 HTTP URL 下载 blob

标签 javascript jquery angularjs blob

我的页面生成这样的 URL:blob:http%3A//localhost%3A8383/568233a1-8b13-48b3-84d5-cca045ae384f,blob 包含文件数据。我正在除 IE 11 之外的所有浏览器中将其作为文件下载。如何在 IE 11 中下载此 blob?将打开一个新选项卡并持续刷新。

var file = new Blob([data], { type: 'application/octet-stream' });
var reader = new FileReader();
reader.onload = function (e) {
    var text = reader.result;
}
reader.readAsArrayBuffer(file);
var fileURL = URL.createObjectURL(file);
var filename = fileURL.replace(/^.*[\\\/]/, '');
var name = filename + '.doc';

var a = $("<a style='display: none;'/>");
a.attr("href", fileURL);
a.attr("download", name);
$("body").append(a);
a[0].click();
a.remove();

最佳答案

IE11 不支持 URL.createObjectURL()

为我工作。

我在用IE11

window.navigator.msSaveOrOpenBlob(blob, fileName);

或者,如果检查条件。

var blob = 'Blob Data';
if(window.navigator.msSaveOrOpenBlob) {

    // IE11
    window.navigator.msSaveOrOpenBlob(blob, fileName);
} else {

    // Google chome, Firefox, ....
    var url = (window.URL || window.webkitURL).createObjectURL(blob);
    $('#filedownload').attr('download', fileName);
    $('#filedownload').attr('href', url);  
    $('#filedownload')[0].click();
}

阅读更多:Fixed URL.createObjectURL() function doesn't work in IE 11

演示:JSFiddle

关于javascript - 在 IE 11 中从 HTTP URL 下载 blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36978795/

相关文章:

JavaScript 显示日期

python - 在 angularjs Controller 中将 pandas json 转换为 highstock 数据格式

javascript - Angular2 形式 : Getting "Object" at console as result of input field element. 值

javascript - jQuery 实时验证

angularjs - Protractor:获取包含多个 I 标签的 anchor 文本

c# - 在 BrowserBack 上调用的已注册警报脚本

javascript - AmCharts V4 : Clickable category axes labels (Stacked columns chart)

javascript 基本 slider 不会工作

jquery - 切换类不工作

javascript - JQuery 中的跨站点 HTTP 身份验证