Eu tenho um aplicativo WebApi / MVC para o qual estou desenvolvendo um cliente angular2 (para substituir o MVC). Estou tendo alguns problemas para entender como o Angular salva um arquivo.
A solicitação está ok (funciona bem com o MVC, e podemos registrar os dados recebidos), mas não consigo descobrir como salvar os dados baixados (estou seguindo a mesma lógica deste post ). Tenho certeza de que é estupidamente simples, mas até agora simplesmente não estou entendendo.
O código da função do componente está abaixo. Eu tentei diferentes alternativas, a maneira blob deve ser o caminho a percorrer, tanto quanto eu entendi, mas não há nenhuma função createObjectURL
no URL
. Não consigo nem encontrar a definição de URL
na janela, mas aparentemente ela existe. Se eu usar o FileSaver.js
módulo , recebo o mesmo erro. Acho que isso mudou recentemente ou ainda não foi implementado. Como posso acionar o salvamento do arquivo em 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);
}
Por uma questão de integridade, o serviço que busca os dados está abaixo, mas a única coisa que faz é emitir a solicitação e transmitir os dados sem mapear, se for bem-sucedido:
downloadfile(runname: string, type: string){
return this.authHttp.get( this.files_api + this.title +"/"+ runname + "/?file="+ type)
.catch(this.logAndPassOn);
}