這邊是直接下載,要點擊下載的可以把函數綁在觸發事件上:
dataURLtoBlob=(dataurl) => {
var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
return new Blob([u8arr], { type: mime });
}
//下載圖片到本地
downloadFile=(url, name) => {
var a = document.createElement('a');
a.setAttribute('href', url);
a.setAttribute('download', name);
a.setAttribute('target', '_blank');
let clickEvent = document.createEvent('MouseEvents');
clickEvent.initEvent('click', true, true); //模擬點擊
a.dispatchEvent(clickEvent);
}
downloadFileByBase64=(base64, name) => {
var myBlob = this.dataURLtoBlob(base64);
var myUrl = URL.createObjectURL(myBlob);
this.downloadFile(myUrl, name); //base64:傳入base64 name:為下載圖片名字,自定義
}
.......
this.downloadFileByBase64(base64, name) //調用