📜  如何使用 JavaScript 将 blob 转换为 base64 编码?(1)

📅  最后修改于: 2023-12-03 15:23:52.939000             🧑  作者: Mango

如何使用 JavaScript 将 blob 转换为 base64 编码?

在前端开发中,有时我们需要将 Blob 对象(通常是从服务端获取的二进制数据)转换为 Base64 编码格式,以便能够在前端展示、传递、存储等操作。

以下是使用 JavaScript 将 Blob 转换为 Base64 的代码示例:

/**
 * @param {Blob} blob - 要转换的 Blob 对象
 * @return {Promise} - 返回一个 Promise 对象,承载转换后的 Base64 编码字符串
 */
function blobToBase64(blob) {
  return new Promise((resolve, reject) => {
    const reader = new FileReader();
    reader.readAsDataURL(blob); // 开始读取 Blob 对象中的数据
    reader.onloadend = () => {
      const base64String = reader.result; // 读取完成后,reader.result 包含转换后的 Base64 编码字符串
      resolve(base64String);
    };
    reader.onerror = reject;
  });
}

这个函数接受一个 Blob 对象作为参数,并返回一个 Promise 对象,承载转换后的 Base64 编码字符串。内部使用 FileReader 对象来读取 Blob 对象中的数据,并将读取的结果转换为 Base64 编码格式。读取完成后,通过 Promise 的 resolve 方法返回转换后的字符串,或者在出现错误时通过 reject 方法抛出异常。

使用这个函数非常简单,只需要传入要转换的 Blob 对象即可。例如:

const blob = new Blob(['Hello World'], {type: 'text/plain'});
blobToBase64(blob).then(base64String => {
  console.log(base64String);
}).catch(error => {
  console.error(error);
});

上面的代码会将字符串 'Hello World' 转换为 Base64 编码格式,并在控制台输出转换后的字符串。

这样,我们就可以方便地将 Blob 对象转换为 Base64 编码格式,从而在前端完成各种操作。