Я хочу скачать .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]
Согласно этот .pdf файл не будет загружен, если вы используете атрибут загрузки на привязке:
Однако некоторые типы файлов (например, изображения, .pdf.txt и .doc, например) не будут загружены.Вместо этого они будут открыты в браузере.
Вы можете скачать с 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; }
Используйте inspect element и убедитесь, что ваша ссылка выглядит примерно так вместо
link.setAttribute('download', 'aqua_imagica_visit_learnings.pdf');
. Попробуйте сделать это таким образом.
link.download = "aqua_imagica_visit_learnings.pdf";