图片base64转成file
最近做了一个功能,是个人签名,用户在签名处点击,弹出签名框,用鼠标或手指签完名之后会得到一个base64的图片,因为我们项目图片都是通过oss上传到阿里云服务器的,然后阿里云返回一个url之后再保存到我们自己的服务器,所以这里我就需要将得到的base64转成file,花不多说,直接上代码(原理:先将base64转成blob,再将blob转成file)
// 将base64转换为blob
baseToBlob (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 });
},
//将blob转换为file
blobToFile(theBlob, fileName){
theBlob.lastModifiedDate = new Date();
theBlob.name = fileName;
return theBlob;
},
//调用
let blob = baseToBlob(base64Data);
let file = blobToFile(blob, 'a.png');