2017-03-24 56 views
0

我正在使用AWS SDK從S3生成預先簽名的下載url,並且我已經完成了該部分。我可以將生成的預簽名url複製到瀏覽器中,並且chrome會自動下載文件。angular2使用來自s3的預簽名url的下載對象

我想在Angular2中實現同樣的事情,基本上模擬點擊該鏈接。所以我寫了下面的代碼:

app.component.ts

public downloadFile() { 
    this.downloadService.downloadFile(this.downloadLink) 
    .subscribe((response) => { 
     console.log(response); 
    });} 

download.service.ts

public downloadFile(downloadLink: string) { 
     return this.http.get(downloadLink) 
     .map((response) => { 
      return response; 
     }); 
    } 

它確實打印在控制檯中的文件內容,但事實並非如此觸發下載。有沒有人知道什麼是正確的做法?

感謝,

+0

什麼是您嘗試下載的文件的類型 – Mehari

回答

0

這裏是下載一個CSV文件更改自己的文件的MIME類型的例子。

public downloadFile(downloadLink: string) { 
     return this.http.get(downloadLink) 
     .map((response) => { 
      let blob = new Blob([response], { type: 'text/csv' }); 
      let url= window.URL.createObjectURL(blob); 
      window.open(url); 
     }); 
    } 
相關問題