Как скачать PDF-файл по нажатию кнопки в угловых 6 - PullRequest
1 голос
/ 19 сентября 2019

Я хочу скачать .pdf файл при нажатии кнопки. Я использую следующий код

downloadMyFile() {
        const link = document.createElement('a');
        link.setAttribute('target', '_blank');
        link.setAttribute('href', 'http://designs.mydeievents.com/jq-3d-flip-book/books/pdf/aqua_imagica_visit_learnings.pdf');
        link.setAttribute('download', 'aqua_imagica_visit_learnings.pdf');
        document.body.appendChild(link);
        link.click();
        link.remove();
      }

<button (click)="downloadMyFile()">download File</button>

Но когда я нажимаю кнопку, она перенаправляется на новую страницу, но я хочу скачать 'aqua_imagica_visit_learnings.pdfфайл для скачивания.Пожалуйста, помогите мне.вот моя ссылка [http://stackblitz.com/edit/angular-4hjad7]

Ответы [ 3 ]

1 голос
/ 19 сентября 2019

Согласно этот .pdf файл не будет загружен, если вы используете атрибут загрузки на привязке:

Однако некоторые типы файлов (например, изображения, .pdf.txt и .doc, например) не будут загружены.Вместо этого они будут открыты в браузере.

0 голосов
/ 19 сентября 2019

Вы можете скачать с ts:

 async download(id: number) {
        try {
            const res = await this.service.getDocument(id);
            this.downloadFile(res);
        } catch (e) {
            this.session.addSingleMessage(e.body.message);
        }
    }

    downloadFile(data) {
        const url = window.URL.createObjectURL(data);
        window.open(url);
    } 

шаблон:

<button click="download(1)>Download</button>

услуга:

 async getDocument(id: number): Promise<any> {
        this.session.setLoading();
        const resp = await this.httpClient.get(`/api/document/${id}/download`, { responseType: 'blob' }).toPromise();
        this.session.resetLoading();
        return resp;
    }
0 голосов
/ 19 сентября 2019

Используйте inspect element и убедитесь, что ваша ссылка выглядит примерно так вместо

link.setAttribute('download', 'aqua_imagica_visit_learnings.pdf');

. Попробуйте сделать это таким образом.

link.download = "aqua_imagica_visit_learnings.pdf";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...