You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中Blob转Base64问题:已实现Base64转Blob但无法逆向转换

Blob转Base64的正确实现方案

嘿,我懂你这种卡壳的感觉——能顺利把Base64转成Blob,逆向操作却搞不定,确实让人头疼。别慌,我来给你分享一个靠谱的Blob转Base64实现,帮你解决这个问题。

首先,浏览器提供了FileReader API,专门用来读取Blob或File对象的内容,我们可以用它来完成逆向转换。这里有一个封装好的异步函数:

function blobToBase64(blob) {
  return new Promise((resolve, reject) => {
    const reader = new FileReader();
    // 读取完成时触发,返回DATA_URI格式的Base64字符串
    reader.onloadend = () => resolve(reader.result);
    // 处理读取错误
    reader.onerror = reject;
    // 以DATA_URI形式读取Blob内容
    reader.readAsDataURL(blob);
  });
}

怎么用这个函数?

因为FileReader是异步操作,所以函数返回了Promise,你可以用async/await或者.then()来获取结果:

// 示例:假设你已经有了一个blob对象
async function handleBlobConversion() {
  const yourBlob = ...; // 这里替换成你的Blob实例
  try {
    const base64Data = await blobToBase64(yourBlob);
    console.log('转换后的Base64:', base64Data);
    // 如果只需要纯Base64部分(去掉data:image/png;base64,前缀)
    const pureBase64 = base64Data.split(',')[1];
    console.log('纯Base64字符串:', pureBase64);
  } catch (error) {
    console.error('转换失败:', error);
  }
}

补充说明

你的Base64转Blob的代码思路是完全正确的——用atob解码Base64字符串,切割成字节数组再生成Blob,这部分不需要调整。问题出在逆向转换时没用到正确的API,FileReader.readAsDataURL就是专门干这个事的,它会直接输出你需要的DATA_URI格式字符串。

内容的提问来源于stack exchange,提问作者Mohan Gopi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:48:12