vue+axios以流的形式下载文件
后端提供文件流(如果后端提供下载链接的话就没这么麻烦了,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以流的形式下载文件相关推荐
- ASP.NET使用文件流的方式下载文件
//以字符流的形式下载文件 string filePath = "D://dome.doc"; FileStream fs = new FileSt ...
- js接收excel文件流并解析下载文件
情景:后端为post请求,且接口返回为excel文件流 方法: 1.使用原生XMLHttpRequest 2.使用原生fetch 3.使用axios import qs from 'qs'import ...
- vue上传文件到php,vue+axios+php如何实现上传文件功能?,formdata上传文件附加参数...
vue+axios+php如何实现上传文件功能?Vue Axios PHP如何实现上传文件的功能?, 推荐:<PHP视频教程> 当我们提交表单时,我们经常会遇到一些表单提交要求.vue的a ...
- response以流的方式下载文件
response以流的方式下载文件 /*** 文件下载* @param worldName 获取前端传进来的文件名* @param response*/@GetMapping("/fileD ...
- vue 使用a标签跨域下载文件
vue项目中下载文件 场景:项目中下载文件过大时接口无法正常响应, 后端给的解决方案是从另一个文件服务器上下载文件,所以提供的是一个跨域访问的api接口,前端需跨域调用后端接口下载文件 // 下载as ...
- 前端根据流或者url下载文件
目前我使用的是利用a标签的download属性去下载的文件,第一个是后端返回的流下载,第二个是根据URL去下载,以下是具体实现 一:端返回的流下载文件 1:首先创建一个新的URL对象,使用window ...
- php 下载.csv,php 文件流的形式下载csv
使用文件流下载csv原因 使用php 下载excel 经常会因为文件太大 导致内存不足 下载失败 直接上代码 $columns = [ 'u_id', '用户姓名' ]; $items=[[" ...
- vue 流的方式下载文件
获取到流后 downloadFn(){// res.data返回的流const blob = new Blob([res.data],{type:'application/octet-stream'} ...
- 后台流触发浏览器下载文件
------前端代码------ <iframe id="spb" src="" style="width: 1px;height: 1px;& ...
最新文章
- R语言常用函数总结大全
- java equals比较_Java中equals()和==的比较
- leetcode -- 303. 区域和检索 - 数组不可变
- 使用C#为.NET Interactive开发自定义扩展
- 前端学习(2668):删除功能
- linux系统可以ping,Linux系统禁ping
- 国内外物联网平台初探(篇二:阿里云物联网套件)
- golang语言渐入佳境[29]-math包核心方法
- 计算机应用技术教程的答案,大学计算机应用技术教程答案
- Ubuntu18.04没有WiFi怎么解决(图文详解)
- Oracle 迁移至 MySQL 后 需要修改的SQL语句 小总结
- 基于.net的学校图书管理系统
- python二级通过率_计算机二级考试通过率太低?别担心,是真正备考的人变少了...
- rufus安装linux到硬盘,怎么用rufus安装 kail linux 安装到u盘
- ppt(office365)之表格使用说明
- RTX 2013安装破解文档
- Android 修改AlertDialog原生setPositiveButton的字体颜色背景颜色大小边距位置
- 【个人笔记】SIPp学习--正则表达式 三
- canvas绘制象棋谱
- 超调量怎么计算公式_超调量如何计算?