Можно ли загрузить файл PDF в виде вложения, если всплывающие окна заблокированы в браузере для проекта Angular? - PullRequest
0 голосов
/ 17 февраля 2019

У меня есть следующий код, который запускается при возврате файла PDF-файла с сервера для отчета:

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');
    });

Если я хотел сделать чистый способ загрузки файла в качестве вложения, еслиу них в настройках браузера заблокированы всплывающие окна, как мне это реализовать?

1 Ответ

0 голосов
/ 18 февраля 2019

Вы можете попробовать использовать 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);
          }
        );
...