base64反解成blob对象并下载(base64转文件下载)
atob()
–解码使用base-64编码的字符串
Uint8Array
数组类型表示一个8位无符号整型数组,创建时内容被初始化为0。创建完后,可以以对象的方式或使用数组下标索引的方式引用数组中的元素
charCodeAt()
返回指定位置的字符的 Unicode 编码
new Blob()
使用文件流进行下载
Internet Explorer 10、11
的 msSaveBlob
和 msSaveOrOpenBlob
方法允许用户在客户端上保存文件,方法如同从 Internet 下载文件
dataURLtoBlob(dataContent, fileName) {
var bstr = atob(dataContent);
var n = bstr.length;
var u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
let blob = new Blob([u8arr], { type: "" });
if (window.navigator && window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveOrOpenBlob(blob, fileName);
} else {
var downloadElement = document.createElement("a");
var href = window.URL.createObjectURL(blob);
downloadElement.href = href;
downloadElement.download = fileName;
document.body.appendChild(downloadElement);
downloadElement.click();
document.body.removeChild(downloadElement);
window.URL.revokeObjectURL(href);
}
},
//调用
this.dataURLtoBlob(res.data.fileByte, res.data.fileName);