Загрузка файла Angular 2: поврежденный результат
Я пытаюсь загрузить файл, используя 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');
}
Окно ['saveAs'] - это просто обходной путь для доступа к функциям JavaScript FileSaver.js.
Кроме того, я установил res: Response для res: any, чтобы я мог получить доступ к свойству private _body в JavaScript без сбоя компиляции в TypeScript.
Любая помощь будет принята с благодарностью.