2017-08-31 118 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"); 
     } 
     );