Angular 2 Herunterladen einer Datei: beschädigtes Ergebnis
Ich versuche, eine Datei mit Angular 2 / TypeScript und der Web-API herunterzuladen. Das Problem, das ich habe, ist, dass beim Herunterladen der Textdatei die Datei eine Datei ist, aber beim Versuch, eine PDF-Datei herunterzuladen, diese beispielsweise beschädigt ist. Der Inhalt der heruntergeladenen Datei ist Unsinn.
Das von mir verwendete TypeScript lautet wie folgt:
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');
}
Das Fenster ['saveAs'] ist nur eine Problemumgehung für den Zugriff auf die Funktionen von JavaScript FileSaver.js.
Zusätzlich habe ich res gesetzt: Antwort auf res: any, damit ich unter JavaScript auf die Eigenschaft private _body zugreifen kann, ohne dass ein Kompilierungsfehler in TypeScript auftritt.
Jede Hilfe wäre sehr dankbar.