Вы можете сделать кнопку похожей на элемент привязки через html, например:
<a href = "abc.net/files/test.ino">download</a>
Вы также можете попробовать создать динамический элемент привязки:
let link = document.createElement('a');
link.setAttribute('type', 'hidden');
link.href = 'abc.net/files/test.ino';
link.download = path;
document.body.appendChild(link);
link.click();
link.remove();
вы можете создать тег привязки для загрузки файла при нажатии кнопки
downloadMyFile(){
const link = document.createElement('a');
link.setAttribute('target', '_blank');
link.setAttribute('href', 'abc.net/files/test.ino');
link.setAttribute('download', `products.csv`);
document.body.appendChild(link);
link.click();
link.remove();
}
теперь вызовите эту функцию с вашей кнопки
<button (click) = "downloadMyFile()">download File<button>
Спасибо большое Хусейн. Работает отлично !!
эта функция открывает новое окно, но я хочу скачать файл без нового окна
@AnandanK вы можете использовать target _self вместо _blank
Если вам нужна прямая загрузка без открытия файла, вам нужно установить настройки в chrome/opera, если вы используете эти браузеры,
Параметр -> Передовой -> Конфиденциальность и безопасность -> Настройка контента -> PDF-документы, Вы видите «Загрузить PDF-файлы вместо автоматического открытия их в Chrome» Давать возможность это.
После этого поместите код ниже в свой HTML-файл,
<a [href] = "fileURL" target = "_blank" class = "btn btn-border" download = "fileName.pdf">Download</a>
Добавление к ответу Хуссейна, но просто выполнение этого с помощью Renderer2, поскольку не рекомендуется использовать документ напрямую.
import { Renderer2 } from '@angular/core'
export class SomeComponent {
constructor(private renderer: Renderer2) {}
downloadFile() {
const link = this.renderer.createElement('a');
link.setAttribute('target', '_blank');
link.setAttribute('href', 'abc.net/files/test.ino');
link.setAttribute('download', `products.csv`);
link.click();
link.remove();
}
}
Большое спасибо @AGR. Это прекрасно работает. Если возможно, предоставьте решение углового уровня также для ознакомления (скажем, вызов URL-адреса через модуль http). Большое спасибо.