我在下载角度文件时遇到了问题。
使用Postman时,文件会正确显示在正文中。
我正在使用Express函数res.download
,可以下载该文件,但不是有效的png我在做什么错?
我的Angular 4实现:
this.http.post(localhost,{"jabcontent": cert._id})
.subscribe(
data => {
console.log(data.text());
var blob = new Blob([data.text()], {type: "image/png"});
FileSaver.saveAs(blob, "test.png" );
/* var blob = new Blob([data.text()], {type: "image/png"});
var objectUrl = URL.createObjectURL(blob);
window.open(objectUrl); */
}
)
最佳答案
我想到了。
我的后端是正确的:
res.download(pathtoFile, filename, (err) => {
//err handeling
});
我对回复的处理有误。响应的映射也不正确,我也将响应类型设置为blob。出于一致性考虑,转而使用。
var headers = new Headers();
headers.append('xyz', '1234'); //request parameter
let options = new RequestOptions({ headers: headers, responseType: ResponseContentType.Blob });
this.http.get('apipath', options)
.map((response: Response)=> response.blob())
.subscribe(data => {
FileSaver.saveAs(data, "filename");
}
);
关于javascript - Angular 2/4 handle res.download,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45983141/