Angular 8 - 将 base64 解析为文件

El *_*bre 3 angular

我正在尝试使用此代码转换 base64 文件

  new File([new Blob([BASE64FILE], {type: 'image/png'})],NAME,  {type: 'image/png'})
Run Code Online (Sandbox Code Playgroud)

有什么不对劲。当我将它发送到数据库时,格式不正确(不是图像)并且不显示任何内容。

所以问题是:将 base64 转换为 File 的正确方法是什么?

Ele*_*ron 22

我当时也有类似的问题。无论如何,这对你有用:

const base64 = '...';
const imageName = 'name.png';
const imageBlob = this.dataURItoBlob(base64);
const imageFile = new File([imageBlob], imageName, { type: 'image/png' });
Run Code Online (Sandbox Code Playgroud)

和功能:

dataURItoBlob(dataURI) {
   const byteString = window.atob(dataURI);
   const arrayBuffer = new ArrayBuffer(byteString.length);
   const int8Array = new Uint8Array(arrayBuffer);
   for (let i = 0; i < byteString.length; i++) {
     int8Array[i] = byteString.charCodeAt(i);
   }
   const blob = new Blob([int8Array], { type: 'image/png' });    
   return blob;
}
Run Code Online (Sandbox Code Playgroud)

  • 花了这么长时间才找到这个答案,我希望我能不止一次投票。 (4认同)