后端提供文件流(如果后端提供下载链接的话就没这么麻烦了,location.href也好<a>也好都可以),前端用Blob对象读取流并使用<a>标签进行下载。

 dowm(index, rows) {//下载this.axios({method: 'post',url: '',//地址data: this.$qs.stringify({//参数}),responseType: 'blob'}).then(response => {this.download(response.data)//获取到返回数据}).catch((error) => {console.log(error);})},download (data) {if (!data) {return}let url = window.URL.createObjectURL(new Blob([data]));let link = document.createElement('a')//对于<a>标签,只有 Firefox 和 Chrome(内核) 支持 download 属性//IE10以上支持blob但是依然不支持downloadif ('download' in document.createElement('a')) { //支持a标签download的浏览器link.style.display = 'none'link.href = urllink.setAttribute('download', '下载的文件名字')document.body.appendChild(link)link.click()//执行点击window.URL.revokeObjectURL(link.href)//释放urldocument.body.removeChild(link)//释放标签}else{//其他浏览器navigator.msSaveBlob(url, dowmName)}},

后端

public void export(HSSFWorkbook workbook, String fileName, HttpServletResponse response) throws Exception{if(workbook !=null) {String headStr = "attachment; filename=\"" + fileName + "\"";response.setContentType("APPLICATION/OCTET-STREAM");//返回格式为流response.setHeader("Content-Disposition", headStr);OutputStream out = response.getOutputStream();workbook.write(out);}}

参考文章

vue+axios以流的形式下载文件相关推荐

  1. ASP.NET使用文件流的方式下载文件

    //以字符流的形式下载文件 string filePath = "D://dome.doc";                 FileStream fs = new FileSt ...

  2. js接收excel文件流并解析下载文件

    情景:后端为post请求,且接口返回为excel文件流 方法: 1.使用原生XMLHttpRequest 2.使用原生fetch 3.使用axios import qs from 'qs'import ...

  3. vue上传文件到php,vue+axios+php如何实现上传文件功能?,formdata上传文件附加参数...

    vue+axios+php如何实现上传文件功能?Vue Axios PHP如何实现上传文件的功能?, 推荐:<PHP视频教程> 当我们提交表单时,我们经常会遇到一些表单提交要求.vue的a ...

  4. response以流的方式下载文件

    response以流的方式下载文件 /*** 文件下载* @param worldName 获取前端传进来的文件名* @param response*/@GetMapping("/fileD ...

  5. vue 使用a标签跨域下载文件

    vue项目中下载文件 场景:项目中下载文件过大时接口无法正常响应, 后端给的解决方案是从另一个文件服务器上下载文件,所以提供的是一个跨域访问的api接口,前端需跨域调用后端接口下载文件 // 下载as ...

  6. 前端根据流或者url下载文件

    目前我使用的是利用a标签的download属性去下载的文件,第一个是后端返回的流下载,第二个是根据URL去下载,以下是具体实现 一:端返回的流下载文件 1:首先创建一个新的URL对象,使用window ...

  7. php 下载.csv,php 文件流的形式下载csv

    使用文件流下载csv原因 使用php 下载excel 经常会因为文件太大 导致内存不足 下载失败 直接上代码 $columns = [ 'u_id', '用户姓名' ]; $items=[[" ...

  8. vue 流的方式下载文件

    获取到流后 downloadFn(){// res.data返回的流const blob = new Blob([res.data],{type:'application/octet-stream'} ...

  9. 后台流触发浏览器下载文件

    ------前端代码------ <iframe id="spb" src="" style="width: 1px;height: 1px;& ...

最新文章

  1. R语言常用函数总结大全
  2. java equals比较_Java中equals()和==的比较
  3. leetcode -- 303. 区域和检索 - 数组不可变
  4. 使用C#为.NET Interactive开发自定义扩展
  5. 前端学习(2668):删除功能
  6. linux系统可以ping,Linux系统禁ping
  7. 国内外物联网平台初探(篇二:阿里云物联网套件)
  8. golang语言渐入佳境[29]-math包核心方法
  9. 计算机应用技术教程的答案,大学计算机应用技术教程答案
  10. Ubuntu18.04没有WiFi怎么解决(图文详解)
  11. Oracle 迁移至 MySQL 后 需要修改的SQL语句 小总结
  12. 基于.net的学校图书管理系统
  13. python二级通过率_计算机二级考试通过率太低?别担心,是真正备考的人变少了...
  14. rufus安装linux到硬盘,怎么用rufus安装 kail linux 安装到u盘
  15. ppt(office365)之表格使用说明
  16. RTX 2013安装破解文档
  17. Android 修改AlertDialog原生setPositiveButton的字体颜色背景颜色大小边距位置
  18. 【个人笔记】SIPp学习--正则表达式 三
  19. canvas绘制象棋谱
  20. 超调量怎么计算公式_超调量如何计算?

热门文章

  1. 股票自选股基本函数大全-1
  2. JAVA处理Excel的三种实现方式(二)
  3. python3--日期时间处理最近n个自然周计算
  4. 安卓(android)即时通讯
  5. 黑马程序员_Java基础_前期准备02-1
  6. Codewars实战(一)
  7. JavaScript实现页面倒计时效果
  8. 大学计算机作业查重,清华大学课程作业查重
  9. join()方法的作用
  10. 苹果重新设计开源官网;阿里云开放 YoC 源代码;GitHub 开发 Code Search 功能 | 开源日报