一、下载本地文件
1.把文件放在public文件夹下
2.把a标签写在了方法里,href后是文件的路径(注意!!“process.env.BASE_URL”代表public)
<Button type="primary" @click="getDownload" icon="ios-download-outline">导入模板</Button>
getDownload(){
const anchor = document.createElement("a");
anchor.href = `${process.env.BASE_URL}static/file/工价维护.xlsx`;
anchor.setAttribute("download", '工价维护.xlsx');
anchor.innerHTML = "downloading...";
anchor.style.display = "none";
document.body.appendChild(anchor);
setTimeout(() => {
anchor.click();
document.body.removeChild(anchor);
setTimeout(() => { self.URL.revokeObjectURL(anchor.href); }, 250);
}, 66);
},
二、请求下载文件
1.get请求
function getDownload (url, filename) {
const anchor = document.createElement("a");
anchor.href = url;
anchor.setAttribute("download", filename);
anchor.innerHTML = "downloading...";
anchor.style.display = "none";
document.body.appendChild(anchor);
setTimeout(() => {
anchor.click();
document.body.removeChild(anchor);
setTimeout(() => { self.URL.revokeObjectURL(anchor.href); }, 250);
}, 66);
}
2.post请求
function getData(){
axios({
method: "post",
url: "/operational/download",
data: {},
responseType: "blob",
}).then((response) => {
this.download(response, "文件名");
});
}
function download(data, filename) {
if (!data) {
return;
}
let url = window.URL.createObjectURL(new Blob([data]));
let link = document.createElement("a");
link.style.display = "none";
link.href = url;
link.setAttribute("download", filename);
document.body.appendChild(link);
link.click();
}