У мене є додаток WebApi / MVC, для якого я розробляю клієнт angular2 (замінити MVC). У мене виникають проблеми з розумінням того, як Angular зберігає файл.
Запит нормальний (добре працює з MVC, і ми можемо реєструвати отримані дані), але я не можу зрозуміти, як зберегти завантажені дані (я в основному дотримуюся тієї ж логіки, що і в цій публікації ). Я впевнений, що це дурно просто, але поки що я просто не розумію цього.
Код функції компонента знаходиться нижче. Я пробував різні варіанти, блоб шлях повинен бути шляхом, наскільки я зрозумів, але немає жодної функції createObjectURL
в URL
. Я навіть не можу знайти визначення URL
вікна, але, мабуть, воно існує. Якщо я використовую FileSaver.js
модуль, я отримую ту ж помилку. Тож я здогадуюсь, що це щось, що нещодавно змінилося або ще не реалізовано. Як я можу викликати збереження файлу в 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);
}