需求
今天的需求是后台大佬返回给我文件的base64,前端需要把base64转成文件并下载。
开始搬砖
听着好简单的样子,当然去百度一波:js 图片base64转file文件的两种方式。作为一个cv程序员,我觉得可以下班了。
一波操作后,居然报了个错。
//将base64转换为文件
dataURLtoFile(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 });
}
emmmm这家伙可能在骗我,我再百度一下。怎么肥四,大家都是这么写的。。那看来是我的问题。
这里的问题在于初始数据的问题:
1)我们在浏览器中看到图片被转成base64之后,是这个样子的: