📅  最后修改于: 2023-12-03 15:23:52.939000             🧑  作者: Mango
在前端开发中,有时我们需要将 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 编码格式,从而在前端完成各种操作。