base64图片转文件流

1,153 阅读1分钟

一个完整的图片base64应包含mime类型和内容信息,欲转换图片先提取出其中的mime类型用以指定转换后文件的类型和文件后缀,如

data:image/jpeg;base64,xxxxxx

转换代码如下:

let base64ToFile = (dataurl, filename) => {
  let arr = dataurl.split(',')
  let mime = arr[0].match(/:(.*?);/)[1];
  if(!filename) {
    filename = `${new Date().getTime()}.${mime.substr(mime.indexOf('/') + 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, {type: mime});
}

以上~