当前位置: 首页 > news >正文

前端axios下载导出文件工具封装

使用示例:

import { fileDownload } from '@/utils/fileDownload'fileDownload({ url: process.env.VUE_APP_BASE_URL + `/statistic/pageList/export`, method: 'post', data: data })

工具类:

import store from '../store/index'
import {getAccessToken
} from '@/utils'
import axios from 'axios'
const token = store.getters.token || getAccessToken()
// 单个文件下载
export const fileDownload = (obj) => {let axiosParams = {method: obj.method,url: process.env.VUE_APP_apipath + obj.url,responseType: 'blob',headers: {'Authorization': `Bearer ${token}`}}if (obj.method && 'POST' === obj.method.toUpperCase()) {axiosParams.data = obj.data ? obj.data : {}}if (obj.method && 'GET' === obj.method.toUpperCase()) {axiosParams.params = obj.params ? obj.params : {}}return axios(axiosParams).then(res => {if (res && res.data) {const url = window.URL.createObjectURL(new Blob([res.data], {type: 'application/octet-stream'}))if (obj.noLink) {return url}const link = document.createElement('a')link.style.display = 'none'link.href = urlif (res.headers['content-disposition']) {console.log(decodeURI(res.headers['content-disposition'].slice(res.headers['content-disposition'].indexOf('=') + 1,res.headers['content-disposition'].indexOf('.'))))link.download =decodeURI(res.headers['content-disposition'].slice(res.headers['content-disposition'].indexOf('=') + 1,res.headers['content-disposition'].indexOf('.'))) +res.headers['content-disposition'].slice(res.headers['content-disposition'].indexOf('.'))} else {if (obj.fileName) {link.download = obj.fileName}}document.body.appendChild(link)link.click()window.URL.revokeObjectURL(url)}})
}

后端返回设置:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

http://www.lryc.cn/news/190965.html

相关文章:

  • Web应用防火墙的性能优化技术
  • 华为HCIP题库h12-821题库新增30题
  • 智慧办公数据可视化大屏设计(数据可视化)、大数据、数据大屏、办公数据大屏、办公数据
  • echarts实现横轴刻度名倾斜展示,并且解决文字超出部分消失问题
  • awk常用统计命令
  • Linux:【Kafka四】集群介绍与单机搭建
  • 代码随想录算法训练营Day52|动态规划11
  • Android渲染系列之原理概述篇
  • 类图 UML从入门到放弃系列之二
  • 诊断用抗原抗体——博迈伦
  • 156 - Ananagrams (UVA)
  • vue3入门
  • 上机实验二 设计单循环链表 西安石油大学数据结构
  • 小谈设计模式(28)—解释器模式
  • Access denied for user ‘root‘@‘xxx‘ (using password: YES)
  • 对象与成员函数指针 function+bind
  • 如何在 PyTorch 中冻结模型权重以进行迁移学习:分步教程
  • 代码随想录算法训练营第六十二、六十三天 | 单调栈 part 2 | 503.下一个更大元素II 、42. 接雨水、84.柱状图中最大的矩形
  • c#设计模式-行为型模式 之 迭代器模式
  • SSM整合RabbitMQ,Spring4.x整合RabbitMQ
  • 【2023研电赛】商业计划书赛道上海市一等奖:基于双矢量优化谐波预测控制的MMC-PET光伏储能系统
  • minio桶命名规则
  • 【教学类-35-04】学号+姓名+班级(中3班)学号字帖(A4竖版2份 竖版长条)
  • 什么叫AI自动直播?
  • LLaMA Adapter和LLaMA Adapter V2
  • 高压放大器在软体机器人领域的应用
  • 《Linux C/C++服务器开发实践》之第4章 TCP服务器编程
  • HCIA---静态路由扩展配置
  • OCP Java17 SE Developers 复习题04
  • spark中使用flatmap报错:TypeError: ‘int‘ object is not subscriptable