Самый простой способ:
<a href='url' download=filename.ext>Загрузить файл</a>
Если URL-адрес указывает на один и тот же исходный ресурс, это нормально.
Если URL-адрес указывает на сторонний ресурс, загрузка не удастся, и поведение будет таким же, как и в случае, когда загрузка не используется — файлы, которые можно открыть браузером, будут открываться браузером напрямую, а файлы, которые не могут быть открыты браузером, будут открыты непосредственно браузером. будут открыты, будут загружены напрямую. Файлы, открытые браузером, можно загрузить вручную.
Решение 1. Упакуйте файл в файл .zip/.rar, который невозможно открыть в браузере, и загрузите его.
Решение 2. Посредством внутренней пересылки серверная часть запрашивает сторонние ресурсы и возвращает их на внешний интерфейс. Интерфейсная часть использует такие инструменты, как сохранение файла, для сохранения файла.
Если сторонний ресурс, на который указывает URL-адрес, настроен с использованием CORS, атрибут загрузки недействителен, но файл можно получить и загрузить локально, а имя файла нельзя изменить.
2.Решение 1. Используйте HTML5 Blob для загрузки файлов с текстовой информацией.const downloadRes = async (url, name) => { let response = await fetch(url) // Преобразуем содержимое в адрес BLOB-объекта let blob = await response.blob() // Создаём скрытую ссылку для скачивания let objectUrl = window. URL .createObjectURL(blob) let a = document.createElement('a') //Адрес a.href = objectUrl //Изменить имя файла a.download = name // Триггерный клик document.body.appendChild(a) a.click() //Удалить setTimeout(() => document.body.removeChild(a), 1000)}2. Формат изображения
Если мы хотим загрузить изображение, мы можем преобразовать его в формат base64 и затем загрузить его.
```export const downloadImg = async (url, name) => { var Canvas = document.createElement('canvas'), ctx = Canvas.getContext('2d'), img = new Image(); 'Анонимный'; img.onload = function() { Canvas.height = img.height; Canvas.width = img.width; ctx.drawImage(img, 0, 0); var dataURL = Canvas.toDataURL('image/png'); let a = document.createElement('a'); a.href = dataURL; a.download = name document; .body.appendChild(a); a.click(); setTimeout(() => { document.body.removeChild(a); Canvas = null; }, 1000); }; img.src = URL;};```
Выше приведено все содержание этой статьи. Я надеюсь, что она будет полезна для изучения всеми. Я также надеюсь, что все поддержат сеть VeVb Wulin.