項目中需要將後臺返回的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