我有以下代码,该代码在从服务器返回服务器以获取报告时运行:
: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。
另外,首先阅读此简介以探索其他选项,并查看您是否实际需要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);
}
);