我从服务器返回报告的pdf blob文件时运行以下代码:
this.http.print_report()
.subscribe( (pdf) => {
this.file = pdf;
},
() => {
},
() => {
this.pdf = new Blob([new Uint8Array(this.file)], {type: 'application/pdf'});
const fileURL = URL.createObjectURL(this.pdf);
// Open window
window.open(fileURL, '_blank');
});
如果我们想要一个干净的方式将文件下载作为附件,如果他们的浏览器设置中有弹出窗口被阻止,我该如何实现?
您可以尝试使用FileSaver或者如果处理大文件,请使用StreamSaver。
此外,首先阅读this intro探索其他选项,看看你是否真的需要FileSaver
或简单的Content-Disposition
样品使用:
import * as FileSaver from "file-saver";
this.itemService
.downloadAttachment(itemNumber, attachmentId)
.subscribe(
data => {
FileSaver.saveAs(data.content, data.fileName);
},
error => {
console.error("Download Error", error);
}
);