📅  最后修改于: 2023-12-03 14:57:23.256000             🧑  作者: Mango
在 TypeScript 中,将文件转换为 base64 可以用于将图片、音频、视频等媒体文件转换成一个字符串来进行传输或存储。这种转换方式十分简单,只需要使用 FileReader
来读取文件内容,然后使用 btoa
函数将内容转换为 base64 编码即可。
以下是一个以角度将文件转换为 base64 的 TypeScript 代码片段:
function fileToBase64(file: File): Promise<string> {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.onloadend = () => {
const base64String = btoa(reader.result as string);
resolve(base64String);
};
reader.onerror = () => {
reject(reader.error);
};
reader.readAsBinaryString(file);
});
}
这个函数接受一个 File
对象作为参数,返回一个 Promise,Promise 的 resolve 值是一个 base64 字符串。在函数内部,我们创建了一个 FileReader
对象,并设置了其 onloadend
和 onerror
事件处理程序,分别在读取成功和失败时执行。
在 FileReader
对象读取完文件内容后,我们使用 btoa
函数将二进制内容转换成 base64 编码,并将其作为 Promise 的 resolve 值返回。需要注意的是,我们使用 readAsBinaryString
方法读取文件内容,这是因为二进制数据是一段未经过编码的数据,可以确保最终生成的 base64 字符串与文件内容一一对应。
这样做,我们就可以轻松地将任何文件转换成 base64 编码了,让传输和存储变得更加方便。