📜  typescript blob 到 base64 - TypeScript (1)

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

TypeScript - 将 Blob 转换为 Base64

在 TypeScript 中将 Blob 对象转换为 Base64 字符串可以通过以下步骤进行操作:

/**
 * 将 Blob 对象转换为 Base64 字符串
 * @param blob - 要转换的 Blob 对象
 * @returns Promise<Base64 字符串>
 */
function blobToBase64(blob: Blob): Promise<string> {
  return new Promise<string>((resolve, reject) => {
    const reader = new FileReader();

    reader.onloadend = () => {
      const base64String = reader.result as string;
      resolve(base64String.split(",")[1]);
    };

    reader.onerror = reject;

    reader.readAsDataURL(blob);
  });
}

上述代码中,我们定义了一个名为 blobToBase64 的函数。该函数接收一个 Blob 对象作为参数,并返回一个 Promise 对象,该 Promise 对象将解析为包含 Blob 对象对应的 Base64 字符串。

在函数内部,我们使用 FileReader 对象将 Blob 对象转换为 Data URL。读取完成后,我们从 Data URL 中提取出 Base64 字符串,并将其返回。

使用示例:

const imageBlob = new Blob(["Hello, World!"], { type: "text/plain" });

blobToBase64(imageBlob)
  .then((base64String) => {
    console.log("Base64 String:", base64String);
  })
  .catch((error) => {
    console.error("Error:", error);
  });

以上示例创建了一个包含文本内容的 Blob 对象,并将其传递给 blobToBase64 函数。然后,通过 .then() 方法获取解析后的 Base64 字符串。如果出现错误,则通过 .catch() 方法捕获和处理错误信息。

请注意,在使用这个函数时需要注意以下几点:

  • Blob 对象的类型必须正确匹配。
  • 需要确保在读取完成之前不会对 Blob 对象进行任何更改,以避免读取到不完整或损坏的数据。
  • 该函数返回的是一个 Promise 对象,在异步场景下使用较为方便。

希望以上内容能够帮助你将 Blob 对象转换为 Base64 字符串。