blob、base64互相转换问题

async function base64ToBlob (base64Str , contentType ,name) {

const sliceSize = 208

  return new Promise((resolve, reject) => {

    // 使用 atob() 方法将数据解码

    let byteCharacters = window.atob(base64Str);

    let byteArrays = [];

    for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {

      let slice = byteCharacters.slice(offset, offset + sliceSize);

      let byteNumbers = [];

      for (let i = 0; i < slice.length; i++) {

        byteNumbers.push(slice.charCodeAt(i));

      }

      // 8 位无符号整数值的类型化数组。内容将初始化为 0。

      // 如果无法分配请求数目的字节,则将引发异常。

      byteArrays.push(new Uint8Array(byteNumbers));

    }

    let result = new Blob(byteArrays, {

      type: contentType

    })

    result = Object.assign(result, {

      // jartto: 这里一定要处理一下 URL.createObjectURL

      preview: URL.createObjectURL(result),

      name: name ==""?"test":name+'.mp3'

    });

    resolve(result)

  })

}

base64->uin8array:let buffer = Buffer.from(base64Str,'base64');
转成utf8的字符串:let utf8Str = buffer.toString('utf8');
Blob :let aBlob = new Blob( [buffer], options );

已经用其他办法成功了,好久没登录了,才回复