【发布时间】:2016-12-12 03:24:49
【问题描述】:
我正在尝试使用 Angular 2/TypeScript 和 Web API 下载文件。我遇到的问题是,在下载文本文件时,文件是文件,但在尝试下载 PDF 文件时,例如,它已损坏。下载的文件内容乱码,乱码。
我使用的 TypeScript 如下:
downloadFile(fileId: string): Observable<File> {
this.applicationsUrl = `${APIConfig.BaseUrl}/documents/download/${fileId}/`;
let headers = new Headers({ 'Content-Type': 'application/json', 'MyApp-Application' : 'AppName' });
let options = new RequestOptions({ headers: headers });
return this.http.post(this.applicationsUrl, '', options)
.map(this.extractContent)
.catch(this.handleError);
}
private extractContent(res: any) {
let blob: Blob = new Blob([res._body], { type: 'application/pdf'});
window['saveAs'](blob, 'test.pdf');
}
window['saveAs'] 只是访问 JavaScript FileSaver.js 函数的一种解决方法。
此外,我已将 res:Response 设置为 res:any,因此我可以在 JavaScript 下访问私有 _body 属性,而不会在 TypeScript 中编译失败。
任何帮助将不胜感激。
【问题讨论】:
标签: typescript angular