我有一个 WebApi/MVC 应用程序,我正在为其开发 angular2 客户端(以替换 MVC)。我在理解 Angular 如何保存文件时遇到了一些麻烦。
请求成功(正常工作与MVC,我们可以登录接收到的数据),但我无法弄清楚如何保存下载的数据(我主要是遵循同样的逻辑这篇文章)。我相信它非常简单,但到目前为止我根本没有掌握它。
组件函数的代码如下。我尝试过不同的方案,则斑的方法应该是,据我了解的路要走,但没有作用createObjectURL
在URL
。我什至找不到URL
in window的定义,但显然它存在。如果我使用该FileSaver.js
module,则会出现相同的错误。所以我想这是最近发生变化或尚未实施的事情。如何触发文件保存在 A2 中?
downloadfile(type: string){
let thefile = {};
this.pservice.downloadfile(this.rundata.name, type)
.subscribe(data => thefile = new Blob([data], { type: "application/octet-stream" }), //console.log(data),
error => console.log("Error downloading the file."),
() => console.log('Completed file download.'));
let url = window.URL.createObjectURL(thefile);
window.open(url);
}
为了完整起见,获取数据的服务如下,但它唯一做的就是发出请求并在成功时不映射地传递数据:
downloadfile(runname: string, type: string){
return this.authHttp.get( this.files_api + this.title +"/"+ runname + "/?file="+ type)
.catch(this.logAndPassOn);
}