在 angular 中将文件转换为 base64

convert file to base64 in angular

我是 angular 的新手,我想将文件转换为 base64 字符串。我尝试了这个,它给出了 base64 字符串,但是当我尝试使用在线工具解码它时,它没有给出正确的结果,谁能帮助我,谢谢。

我们可以将 pdf 和 word 文件转换为 base64 或只是图像吗?使用我的代码,我成功地转换了图像,但没有转换任何其他文件

我的html代码:

 <input type="file" (change)="base($event)">

和我的 ts 代码:

 base(event: { target: { files: any[]; }; }) {
const file = event.target.files[0];
const reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = () => {
    console.log(reader.result);
};

}

您的代码运行良好。您确定您正在正确获取文件对象吗?

下面是相同的stackblitz demo

另外,读取文件时最好使用promise。您可以使用下面的函数来读取文件。它将文件作为输入并解析为 base64 字符串。

private readBase64(file): Promise<any> {
const reader = new FileReader();
const future = new Promise((resolve, reject) => {
  reader.addEventListener('load', function () {
    resolve(reader.result);
  }, false);
  reader.addEventListener('error', function (event) {
    reject(event);
  }, false);

  reader.readAsDataURL(file);
});
return future;

}

调用这个函数如下 -

this.readBase64(file)
    .then((data) => {
        // your code
    });