我正在使用AWS SDK从S3生成预先签名的下载URL,而且我已经完成了该部分。我可以将生成的预签名网址复制到浏览器中,Chrome会自动下载该文件。
我想在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 :(得分: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);
});
}