上文介绍了chrome浏览器打开base64图片,今天讲一下如何下载base64的图片。
思路
- 将
base64
转化成Blob
- 通过
Blob
来下载
代码实现
base64
转化成Blob
/**
* base64转Blob
* @param {*} dataurl base64
*/
export function dataURLtoBlob(dataurl) {
let 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 });
}
通过Blob
下载
/**
* blob下载
* @param {*} blob 文件blob对象
* @param {*} filename 下载后的文件名
*/
export function downloadFile(blob, filename) {
let url = window.URL.createObjectURL(blob);
let link = document.createElement('a');
link.style.display = 'none';
link.href = url;
link.setAttribute('download', filename);
document.body.appendChild(link);
link.click();
}