项目中需要将后台返回的base64转换成文件并下载
dataURLtoFile(dataurl, filename) { // 生成Blob
var arr = dataurl.split(',');
var mime = arr[0].match(/:(.*?);/)[1];
var bstr = atob(arr[1]);
var n = bstr.length;
var u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
return new Blob([u8arr], { type: mime });
}
/**
* @name: 生成下载路径
* @param {String} fileName 文件名称
* @param {String} file base64字符串
* @return: 下载路径url
*/
createDownloadFileUrl(fileName, file) {
const blob = this.dataURLtoFile(`data:application/zip;base64,${file}`, fileName); // application/zip 需要改成要下载文件的类型
blob.lastModifiedDate = new Date();
blob.name = fileName;
return URL.createObjectURL(blob);
},
<a :href="downloadUrl" download>下载</a>
downloadUrl就是createDownloadFileUrl方法返回的url
如果不知道文件base64类型是什么样的可以通过以下地址检查,拖进去就可以:https://www.zhangxinxu.com/sp/base64.html