Tôi có một ứng dụng WebApi / MVC mà tôi đang phát triển ứng dụng khách angular2 (để thay thế MVC). Tôi gặp một số rắc rối khi hiểu cách Angular lưu tệp.
Yêu cầu vẫn ổn (hoạt động tốt với MVC và chúng tôi có thể đăng nhập dữ liệu nhận được) nhưng tôi không thể tìm ra cách lưu dữ liệu đã tải xuống (tôi chủ yếu tuân theo logic tương tự như trong bài đăng này ). Tôi chắc chắn rằng nó đơn giản một cách ngu ngốc, nhưng cho đến nay tôi chỉ đơn giản là không nắm bắt được nó.
Mã của hàm thành phần dưới đây. Tôi đã thử các lựa chọn khác nhau, cách blob nên là cách để đi xa như tôi hiểu, nhưng không có chức năng createObjectURL
trong URL
. Tôi thậm chí không thể tìm thấy định nghĩa URL
trong cửa sổ, nhưng rõ ràng nó tồn tại. Nếu tôi sử dụng FileSaver.js
mô-đun, tôi nhận được cùng một lỗi. Vì vậy, tôi đoán đây là một cái gì đó đã thay đổi gần đây hoặc chưa được thực hiện. Làm cách nào để kích hoạt tệp lưu trong 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);
}
Để hoàn thiện, dịch vụ tìm nạp dữ liệu ở bên dưới, nhưng điều duy nhất nó làm là đưa ra yêu cầu và truyền dữ liệu mà không cần ánh xạ nếu thành công:
downloadfile(runname: string, type: string){
return this.authHttp.get( this.files_api + this.title +"/"+ runname + "/?file="+ type)
.catch(this.logAndPassOn);
}