此方案是度娘查询到的,忘了是哪个网址了
if( window.navigator && window.navigator.msSavaOrOpenBlob ) {
navigator.msSavaBlob(new Blob([req.data],name));
}else {
let url = window.URL.createObjectURL(new Blob([req.data]));
let link =document.createElement('a');
link.style.display = 'none';
link.href = url;
link.setAttribute('download',name);
document.body.appendchild(link);
link.click();
URL.revokeObjectURL(url);
document.body.removeChild(link);
}
其中name是下载文件的名称,即下载后文件名称;
req为接口返回的文件流数据;
msSavaOrOpenBlob 是指允许用户在客户端上保存及打开文件
URL.createObjectURL() 创建一个DOMString,这个URL表示指定的File对象或Blob对象。其返回一段带有hash的url,并且储存在内存中,直到document触发unload方法,或者调用revokeObjectURL来释放内存。