如果在Angular项目的浏览器中阻止弹出窗口,可以将pdf文件下载为附件吗?

问题描述 投票:0回答:1

我从服务器返回报告的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');
    });

如果我们想要一个干净的方式将文件下载作为附件,如果他们的浏览器设置中有弹出窗口被阻止,我该如何实现?

angular pdf popup blob attachment
1个回答
0
投票

您可以尝试使用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);
          }
        );
© www.soinside.com 2019 - 2024. All rights reserved.