Как сделать скачивание файла через js?

Для скачивания файла через JavaScript можно воспользоваться следующими способами:

1. **Использование ссылки**:
Можно создать ссылку (<a>), задать ей атрибуты href с путем к файлу и download с именем файла, который будет скачиваться. После этого программно выполнить "клик" по созданной ссылке.

function downloadFile(url, fileName) {
    const link = document.createElement('a');
    link.href = url;
    link.download = fileName;
    link.click();
}

2. **Использование Fetch API**:
Можно использовать Fetch API для загрузки файла и Blob API для создания объекта Blob из полученных данных. Полученный объект Blob затем можно преобразовать в URL файла и использовать для скачивания файла.

function downloadFile(url, fileName) {
    fetch(url)
        .then(response => response.blob())
        .then(blob => {
            const url = URL.createObjectURL(blob);
            const link = document.createElement('a');
            link.href = url;
            link.download = fileName;
            link.click();
            URL.revokeObjectURL(url);
        });
}

3. **Использование XMLHttpRequest**:
Вместо Fetch API можно использовать XMLHttpRequest для загрузки файла. Полученный результат также можно преобразовать в объект Blob и далее скачать его, как в примере выше.

function downloadFile(url, fileName) {
    const xhr = new XMLHttpRequest();
    xhr.open('GET', url, true);
    xhr.responseType = 'blob';
    xhr.onload = function() {
        const blob = xhr.response;
        const url = URL.createObjectURL(blob);
        const link = document.createElement('a');
        link.href = url;
        link.download = fileName;
        link.click();
        URL.revokeObjectURL(url);
    };
    xhr.send();
}

Это три основных способа, которые позволяют скачать файл через JavaScript. Каждый из них имеет свои особенности и может быть выбран в зависимости от конкретных требований и сценариев использования.