Вы можете использовать атрибут загрузки для тега ссылки <a href="http://server/site/test.txt" download="test001.txt">Download Your File</a>
Однако, когда заголовок размещения содержимого установлен в ответе сервера, он будет игнорировать атрибут загрузки и имя файла будет установлено наимя файла в заголовке ответа на размещение содержимого
Это можно сделать с помощью axios или любой другой выборки, выполнив следующее:
const downloadAs = (url, name) => {
Axios.get(url, {
headers: {
"Content-Type": "application/octet-stream"
},
responseType: "blob"
})
.then(response => {
const a = document.createElement("a");
const url = window.URL.createObjectURL(response.data);
a.href = url;
a.download = name;
a.click();
})
.catch(err => {
console.log("error", err);
});
};
использование:
downloadAs('filedownloadlink', 'newfilename');
Примечание: если ваш файл большой, он будет выглядеть так, будто ничего не делает, пока весь файл не будет загружен, поэтому убедитесь, что вы показываете какое-то сообщение или какое-то указание пользователю, чтобы он знал, что он что-то делает