base64格式的图片转换为file 文件格式
2022-03-28 本文已影响0人
IssunRadiance
在项目中用到使用canvas生成图片功能(canvas.toDataURL("image/png")),生成的图片结果返回的是base64格式的图片,
这里我们需要用到的是线上的远程地址, 所以需要把图片上传到七牛,拿到返回的图片路径。
所以这里需要将base64格式的图片转换为file文件的格式,调用上传的进行上传。
代码如下:
// dataurl 为传进来的base64格式的图片地址, return 返回的为file格式
base64ImgtoFile(dataurl, filename = 'file') {
let arr = dataurl.split(',')
let mime = arr[0].match(/:(.*?);/)[1]
let suffix = mime.split('/')[1]
let bstr = atob(arr[1])
let n = bstr.length
let u8arr = new Uint8Array(n)
while (n--) {
u8arr[n] = bstr.charCodeAt(n)
}
return new File([u8arr], `${filename}.${suffix}`, {
type: mime
})
},