2017-08-31 137 views
0

我遇到了一个有角度下载文件的问题。角度2/4手柄res.download

使用Postman时,文件在正文中正确显示。

我正在使用快速功能res.download,我可以得到该文件下载,但它不是一个工作PNG我做错了什么?

我的角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); */ 
      } 
     ) 

回答

1

我想通了。

我的后台是正确的:

  res.download(pathtoFile, filename, (err) => { 
      //err handeling 
     }); 

我做了一个错误与respons的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"); 
     } 
     );