【发布时间】:2018-10-05 17:12:54
【问题描述】:
我正在尝试从 Web API 获取 PDF 文档,并希望在 Angular App 中显示。收到“无法加载 PDF 文档错误”。
请按照我的代码:
我的服务.ts
public download_pdf(id: string): Observable<any> {
let params = new URLSearchParams();
let headers = new Headers();
headers.append('x-access-token', this.auth.getCurrentUser().token);
headers.append('id', id);
return this.http.get(Api.getUrl(Api.URLS.download_pdf), {
headers: headers,
responseType: ResponseContentType.ArrayBuffer,
}).map(
response => (<Response>response).blob())
}
我的组件.ts
downloadFile2(id) {
this.ws.download_pdf(id).subscribe(
(response) => {
let mediaType = 'application/pdf';
let blob = new Blob([response._body], {type: mediaType});
let filename = 'test.pdf';
FileSaver.saveAs(blob, filename);
});
}
模板.html
<button>
<i class="fa fa-save" aria-hidden="true"(click)="downloadFile2(item.id)"></i>
</button>
结果是:下载一个 test.pdf --> Error Failed to load PDF document.
【问题讨论】:
标签: angular typescript pdf download blob