ฉันมีแอป 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);
}