将PDF的URL转换为Base64

4
在我的Angular应用程序中,我使用以下代码将任何文件转换为Base64字符串。
handleUpload(event) {
    const file = event.target.files[0];
    const reader = new FileReader();
    reader.readAsDataURL(file);
    reader.onload = () => {
        console.log(reader.result);
    };
}

在这里,我想实时将pdf网址转换为base64。这是我想要转换为base64的示例URL。

https://vadimdez.github.io/ng2-pdf-viewer/assets/pdf-test.pdf

2个回答

3

您可以使用HttpClient从URL获取文件。首先,您需要在app.module.ts中导入HttpClientModule

import { HttpClientModule } from '@angular/common/http';
imports: [...,
     'HttpClientModule',
       ...]

之后在你的组件.ts文件中引入'@angular/common/http'中的HttpClient,并将其实例添加到构造函数中。

constructor(private http: HttpClient) { }

添加该方法

convertToBase64(url: string) {
    this.http.get(url, { responseType: "blob" }).subscribe(blob => {
      const reader = new FileReader();
      const binaryString = reader.readAsDataURL(blob);
      reader.onload = (event: any) => {
        //Here you can do whatever you want with the base64 String
        console.log("File in Base64: ", event.target.result);
      };

      reader.onerror = (event: any) => {
        console.log("File could not be read: " + event.target.error.code);
      };
    });
}

2
function getBase64(file) {
     return new Promise((resolve, reject) => {
         const reader = new FileReader();
         reader.readAsDataURL(file);
         reader.onload = () => resolve(reader.result);
         reader.onerror = error => reject(error);
    });
}

var file = document.querySelector('#files > input[type="file"]').files[0];
getBase64(file).then(
   data => console.log(data)
);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接