zip,excel,csv文件下载

2,209 阅读1分钟
  1. zip文件下载
// 下载压缩的vue文件zip包,返回文件流,需要单独处理
export const zipDownloadVue = (params) => axios({
    method: "post",
    url: url,
    responseType: "blob", // 该参数会以blob流格式返回
    data: params
});


// 调用
zipDownloadVue(compilePage).then(response => {
    // new Blob([data])用来创建URL的file对象或者blob对象
    let url = window.URL.createObjectURL(new Blob([response.data])); 
    // 生成一个a标签
    let link = document.createElement("a");
    link.style.display = "none";
    link.href = url;
    // 生成时间戳
    let timestamp = new Date().getTime();   
    link.download = `${timestamp}.zip`;   
    document.body.appendChild(link);
    link.click();
    document.body.removeChild(link) // 下载完成移除元素 
    window.URL.revokeObjectURL(url) // 释放掉blob对象
}).catch(error => {
    console.log("response: ", error);
});

  1. excel文件下载
export const exportTemplateClasse = (params) => {  
  return axios.post(
    '/school/classesInfo/export',
    params,
    {
      responseType: "arraybuffer" // 该参数会以arraybuffer流格式返回
  });
}


exportTemplate(params).then(response => {
  downloadExcel(response.data)
})


const downloadExcel = (data) => {
    let url = window.URL.createObjectURL(new Blob([data], {type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8'})); 
    // 生成一个a标签
    let link = document.createElement("a");
    link.style.display = "none";
    link.href = url;
    // 生成时间戳
    let timestamp = new Date().getTime();   
    link.download = `${timestamp}.xlsx`;   
    document.body.appendChild(link);
    link.click();
    document.body.removeChild(link) // 下载完成移除元素
    window.URL.revokeObjectURL(url) // 释放掉blob对象
  }
  1. csv文件下载

image.png

image.png