base64格式的图片转换为file 文件格式

在项目中用到使用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
      })
    },

你可能感兴趣的:(base64格式的图片转换为file 文件格式)