在 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
,可以将其用于上传、下载等操作。