首页 > 其他分享 >vue下载blob无法获取响应头里面的Content-Disposition来提取文件名 --导出完成代码

vue下载blob无法获取响应头里面的Content-Disposition来提取文件名 --导出完成代码

时间:2022-10-11 17:56:46浏览次数:57  
标签:vue -- res Content window link blob let data

 exportClick() {
      //导出
      let par = {}
      downAxiosFile('/personnel/change/perUser/exportXls', par).then((res) => {
        let { data } = res;
        let fileName = decodeURIComponent(res.headers["content-disposition"].split("=")[1])
        if (!data) {
          this.$message.warning('文件下载失败')
          return
        }
        if (typeof window.navigator.msSaveBlob !== 'undefined') {
          window.navigator.msSaveBlob(new Blob([data], { type: 'application/vnd.ms-excel' }), '在职列表.xls')
        } else {
          let url = window.URL.createObjectURL(new Blob([data], { type: 'application/vnd.ms-excel' }))
          let link = document.createElement('a')
          link.style.display = 'none'
          link.href = url
          link.setAttribute('download', fileName)
          document.body.appendChild(link)
          link.click()
          document.body.removeChild(link) //下载完成移除元素
          window.URL.revokeObjectURL(url) //释放掉blob对象
        }
      })
    },

 备注:axios返回的数据要从响应拦截器中取值

标签:vue,--,res,Content,window,link,blob,let,data
From: https://www.cnblogs.com/wangshengli520/p/16780049.html

相关文章

  • Error running 'TestAlterNickname.test': Command line is too long. Shorten comman
    问题描述如图IDEA报错问题,发生在我用JUnit进行测试时。解决方法1.直接点击default2.Modifyoptions->Shortencommandline3.选jar4.Apply然后重新运行......
  • Day2
    打开CMD的方式1.开始+Windows系统+命令提示符2.Windows+R出现运行,输入CMD,打开控制台(推荐使用)3.在任意的文件夹下面,按住Shift+鼠标右键点击,选择在此处打开命令行窗口......
  • 如何将日期时间输出带"AM/PM"的字样呢?
    转自:http://www.java265.com/JavaJingYan/202111/16359117291672.html 格式化日期是我们日常开发中经常要用到的小技巧,因为每个项目的使用者都对自己的时间样式有自己......
  • [模板]点分治
    洛谷p3806code#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;constintmaxn=1e5+7;constintinf=1e7;intn,m,maxp[maxn],siz[......
  • wordpress 开发相关函数
    首页判断is_home()is_front_page()当你的首页不是默认的index.php的时候,而是在后台指定了一个page页面。这种情况下is_home()会失效,也就是说这样子的情况下就不能再用is......
  • 困难-2435. 矩阵中和能被 K 整除的路径
    这是10月9日参加竞赛的一道题目,当时没做出来,数据量很大,对性能要求比较高执行结果:通过执行用时:220ms,在所有 JavaScript 提交中击败了100.00%的用户内存消耗:75.2M......
  • CMakeLists.txt中打印所有变量
    一、打印可见变量及其值get_cmake_property(_variableNamesVARIABLES)foreach(_variableName${_variableNames})message(STATUS"${_variableName}=${${_variabl......
  • MySQL实现随机查询一条或多条数据
    一、随机查询一条数据SELECT*FROM`table`ASt1JOIN(SELECTROUND(RAND()*((SELECTMAX(id)FROM`table`)-(SELECTMIN(id)FROM`table`))+(SELECTMIN(id......
  • 实验5:开源控制器实践——POX
    一、基本要求:阅读Hub模块代码,使用tcpdump验证Hub模块h1pingh2、h2和h3的tcpdump抓包结果截图如下L2_Learning代码流程图如下使用tcpdump验证Switch模块h1pin......
  • 快速排序
    首先我们要对一组数据进行排序:在数组中选一个基准数(通常为数组第一个,黄圈圈标记了);将数组中小于基准数的数据移到基准数左边,大于基准数的移到右边,怎么移动,后面说;......