1
我使用Filesaver.js嘗試從我的後端,這是Express(nodejs)下載文件。下載文件與Angular和Filesaver.js不工作
這是我的後端代碼來下載文件。它使用中間件來檢查認證信息。
res.download(url, function (err) {
if (err) {
console.log("Error: " + err);
res.status.send({
message: "Can not download file"
});
}
});
這裏是我的服務的代碼:
downloadEventAttachment(attachmentUrl){
let endPointUrl = this.auth.getServerHost();
this.authHttp.get(endPointUrl + attachmentUrl)
.subscribe(res => {
var blob = new Blob([res], { type: res.headers.get('Content-Type') });
saveAs(blob);
})
}
的問題是,生成一個下載文件,但有錯誤。 如果我下載了一張圖片,說圖片無效。
如果我嘗試下載一個txt文件其有這樣的內容:
Response with status: 200 OK for URL: http://192.168.1.78:8081/calendar/download_eventattachment/728/file-1496421767591.txt
如果我使用從郵遞員請求,則圖像以及顯示。
我做錯了什麼?
非常感謝
[更新1]
我添加的responseType和仍然沒有工作:
downloadEventAttachment(attachmentUrl){
let endPointUrl = this.auth.getServerHost();
let options = new RequestOptions({ responseType: ResponseContentType.Blob });
this.authHttp.get(endPointUrl + attachmentUrl, options)
.subscribe(res => {
var blob = new Blob([res], { type: res.headers.get('Content-Type') });
saveAs(blob);
},
error => {
console.log(error);
})
}
https://stackoverflow.com/questions/33242959/saving-png-files-with-filesaver-js –
這並不能幫助我的朋友@AhmedMusallam –
你必須設置響應內容類型...看到這裏http://talk-about-code.blogspot.de/2017/05/download-file-with-angular2-and.html?m=1 – Ludwig