这次是因为需要导出excel文件,后端返回url地址和文件名称,但是还想更改文件名称,所以采取了以下方法 封装方法,在使用页面引入
/**
* 通过url下载文件并对下载的文件更名
* @param {*} url
* @param {*} filename
*/
export const downloadFile = (url, filename) => {
function getBlob (url) {
return new Promise(resolve => {
const XML = new XMLHttpRequest();
XML.open('GET', url, true);
XML.responseType = 'blob';
XML.onload = () => {
if (XML.status === 200) {
resolve(XML.response);
}
};
XML.send();
});
}
//下载文件
function saveAs (blob, filename) {
const elelink = document.createElement("a");
elelink.style.display = 'none';
elelink.download = filename;
elelink.href = window.URL.createObjectURL(blob);
document.body.appendChild(elelink);
elelink.click();
document.body.removeChild(elelink);
}
// 调用以上方法进行下载
getBlob(url).then(blob => {
saveAs(blob, filename);
});
}
页面使用方法filename可以按需自由拼接 在使用页面引入方法
引入方法
import {downloadFile} from "../../../assets/downfile";
在click方法里面调用
downloadFile(url,filename)