js处理下载的时候可以使用blob对象处理,将后端返回的流文件转换成blob对象,然后创建a链接,触发其点击事件下载
const downBlobFile = (data, name) => {
const blob = new Blob([data]);
let dom = document.createElement('a');
let url = window.URL.createObjectURL(blob);
dom.href = url;
dom.download = decodeURI(name);
dom.style.display = 'none';
document.body.appendChild(dom);
dom.click();
dom.parentNode.removeChild(dom);
window.URL.revokeObjectURL(url);
return true;
};
但是有时候会出现打开下载文件后乱码的i情况,这时候就把请求数据的responseType设置为blob
image.png
设置成功后打开的文件就可以正常展示了。
网友评论