【发布时间】:2019-01-17 15:44:08
【问题描述】:
我正在从 Web API 返回一个文件
[HttpGet("[action]")]
public FileResult DownloadExcel()
{
return File($"~/files/Input.xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Input.xlsx");
}
效果很好
现在我想在按钮单击时以角度使用它
所以我在网上找到了一些代码
downloadFile() {
return this.http.get(this.baseUrl + 'api/Common/DownloadExcel/', { responseType: 'blob' })
.map(res => {
return {
filename: 'filename.xlsx',
data: res.blob()
};
}).subscribe(res => {
console.log('start download:',res);
var url = window.URL.createObjectURL(res.data);
var a = document.createElement('a');
document.body.appendChild(a);
a.setAttribute('style', 'display: none');
a.href = url;
a.download = res.filename;
a.click();
window.URL.revokeObjectURL(url);
a.remove(); // remove the element
}, error => {
console.log('download error:', JSON.stringify(error));
}, () => {
console.log('Completed file download.')
});
}
但是报错
类型“Blob”上不存在属性 Blob
在下面一行
data: res.blob()
我已经导入了
import 'rxjs/add/operator/filter';
import 'rxjs/add/operator/mergeMap';
import 'rxjs/add/operator/do';
import 'rxjs/add/operator/map'
我在这里缺少什么?这段代码对吗?
【问题讨论】:
标签: angular .net-core asp.net-core-webapi