base64 字符串转换为 Blob 对象

在 JavaScript 中,可以使用以下代码将 base64 字符串转换为 Blob 对象:

function base64toBlob(base64, type = 'application/octet-stream') {
  const bstr = atob(base64);
  let n = bstr.length;
  const u8arr = new Uint8Array(n);
  while (n--) {
    u8arr[n] = bstr.charCodeAt(n);
  }
  return new Blob([u8arr], { type });
}

其中,base64 是待转换的 base64 字符串,type 是 Blob 对象的 MIME 类型,默认值为 'application/octet-stream'。该函数返回一个 Blob 对象。

可以像下面这样使用该函数:

const base64Str = 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA' +
  'B3RJTUUH4AQWEDgXfX9fkQAAAQ5JREFUOE+lk79vG1Ecx/F/nMeLRKPjjCC6eKslJ7ijY72GAm+ZO7dLwKrtRIaUEEmbJ0dIkllRmi' +
  'JYZKbYu/3M3oh1z68RHw//2Nv7jL13/m853vf3d3NKvS9tNhQlZfIVmR/VmLars4SlpI34NbGc/0B53HJivGWMJJX9W62I0Lx5zN' +
  'b91mj5/rIMNNV7n+6lQASV7ApY6a8U+7D/S/uGJ1hTTYKfJy8PzMvvGHMHb+NR/EZrC/qjkFjKbrzC1e3+3KKoJLw2h/cQN6Rogm' +
  'VDmDJrMMkxmMXlElyFHoPoow7VzJjKpzO7A0GktEASNDkVYmlN6u8GtcHdAmSKfbAr/6jOMkeATnt/0nLjJwxwhAAAAAElFTkSuQmCC';
const blob = base64toBlob(base64Str, 'image/png');

其中,base64Str 是待转换的 base64 字符串,image/png 是 MIME 类型。转换完成后,会得到一个 Blob 对象 blob,可以将其用于上传、下载等操作。