Скачать в angular 8 текст - PullRequest
0 голосов
/ 16 марта 2020

Хорошо, я хотел, чтобы на странице была кнопка, чтобы при нажатии она загружала сохраненный файл в формате txt, я нашел функцию saveAs, но она выдает ошибки, есть ли другой способ сделать это проще ? Код:

uploader: FileUploader;
    download(){
       saveAs(this.uploader, 'data.txt');
     }

HTML:

<button (click)="download()" class="btn"><i (click)="download()" class="fa fa-download"></i> Download</button>

Ошибка, которая дает мне с saveAs:

TextAnomComponent. html: 42 ОШИБКА Ошибка типа: не удалось выполнить createObjectURL для URL: не найдена функция, соответствующая предоставленной подписи.

1 Ответ

0 голосов
/ 17 марта 2020

Во-первых, вам нужно убедиться, что this.uploader является типом BLOB-объекта.

Если все правильно, то вам нужно проверить window.navigator.msSaveOrOpenBlob, существующий в вашем браузере, или нет

, если нет затем создайте ссылку для загрузки.

if (window.navigator.msSaveOrOpenBlob) {
  window.navigator.msSaveBlob(this.uploader, "data.txt");
}else {
  const downloadLink = window.document.createElement('a');

  // get the this.uploader file type and put in type below
  downloadLink.href = window.URL.createObjectURL(new Blob([this.uploader], { type: ... }));

  downloadLink.download = "data.txt";
  document.body.appendChild(downloadLink);
  downloadLink.click();
  document.body.removeChild(downloadLink);
}

Надеюсь, что это поможет!

...