vue 文件转换二进制_在vue中使用axios实现post方式获取二进制流下载文件(实例代码)...
需求
点击导出下载表格对应的excel文件
在 vue 项目中,使用的 axios ,后台 java 提供的 post 接口 api
实现
第一步,在 axios 请求中加入参数,表示接收的数据为二进制文件流
responseType: "blob"
第二步,在拿到数据流之后,把流转为指定文件格式并创建a标签,模拟点击下载,实现文件下载功能
let blob = res.data
let reader = new FileReader()
reader.readAsDataURL(blob)
reader.onload = (e) => {
let a = document.createElement("a")
a.download = fileName
a.href = e.target.result
document.body.appendChild(a)
a.click()
document.body.removeChild(a)
}
问题
使用 axios 会出现无法拿到 java 后端给出的 Content-Disposition 中的文件名
注意的是,浏览器中可以看到header中有信息,但是无法通过 axios 的 res.header 获取到
这种情况需要后端设置 header
Access-Control-Expose-Headers: Content-Disposition
有可能后端加了之后还是获取不到,那么让后端单独加一个fileName字段即可
response.setContentType("multipart/form-data");
response.setCharacterEncoding("utf-8");
response.setHeader("Content-disposition", "attachment;filename=" + UUID.randomUUID().toString() + ".xlsx");
response.setHeader("FileName", UUID.randomUUID().toString() + ".xlsx");
response.setHeader("Access-Control-Expose-Headers", "FileName")
总结
完整的 axios 代码
axios.post({
url:`url`,
method:`post`,
responseType: "blob"
}).then(res => {
let blob = res.data
let reader = new FileReader()
reader.readAsDataURL(blob)
reader.onload = (e) => {
let a = document.createElement("a")
a.download = `fileName.xlsx`
a.href = e.target.result
document.body.appendChild(a)
a.click()
document.body.removeChild(a)
}
})
ps:vue-axios的使用方法(简单易懂)
1.vue-axios插件的安装
使用 npm:
$ cnpm install axios
2.在main.js中添加(添加到原型链上)
import axios from "axios";
Vue.prototype.axios = axios;
完活,然后就可以随便在任何组件开始用了,耶!^-^!
例子:
this.axios.post("http://ai.yiche.com/web/ability/nlu/standardTokenizer", {
"text": "动效如果有跟评审结论有出入的地方或者不清楚的地方,随时沟通哈~"
}).then(function(res) {
console.log(res.data);
}).catch(function(err) {
if (err.response) {
console.log(err.response)
}
});
以上所述是小编给大家介绍的在vue中使用axios实现post方式获取二进制流下载文件,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对云海天教程网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
vue 文件转换二进制_在vue中使用axios实现post方式获取二进制流下载文件(实例代码)...相关推荐
- .vue文件 转换成html,在vue中把含有html标签转为html渲染页面的实例
在vue中把含有html标签转为html渲染页面的实例 在标签内部添加v-html指令即可 使用pug的写法: 这个content表示的是一个含标签的变量 输入content为: 我是p标签 输出结果 ...
- java中获取文件总行数_关于java:如何以有效的方式获取文件中的行数?
本问题已经有最佳答案,请猛点这里访问. 我有一个大文件. 它包括大约3.000-20.000行. 如何使用Java获取文件中的行总数? 从你的评论到答案来判断,你要找的词是"有效的" ...
- 【Kotlin 协程】Flow 异步流 ② ( 使用 Flow 异步流持续获取不同返回值 | Flow 异步流获取返回值方式与其它方式对比 | 在 Android 中使用 Flow 异步流下载文件 )
文章目录 一.使用 Flow 异步流持续获取不同返回值 二.Flow 异步流获取返回值方式与其它方式对比 三.在 Android 中 使用 Flow 异步流下载文件 一.使用 Flow 异步流持续获取 ...
- android home跳转,Android 中按home键和跳转到主界面的实例代码
Android 中按home键和跳转到主界面的实例代码 //home Intent intent= new Intent(Intent.ACTION_MAIN); intent.setFlags(In ...
- vue 文件转换二进制_vue项目将file转换成二进制流
前端在新增数据时,需要将附件和表单数据一起上传,此时需要将文件转换成二进制流传给后端.记录将文件转换成二进制流 ref="uploadProduct" class="up ...
- vue项目的停止_基于Vue项目开发中遇到的坑及终结
之前一直在公司忙项目,忙项目的,好歹是发布了1.0版本.终于是有时间写一个总结了. 话说我就一个实习生一进来就要做项目核心,真的有点受宠若惊,还好项目是1.0版本,先实现部分功能,访问量也不大,加上一 ...
- vscode输入vue自动_使用vscode,新建.vue文件,tab自动生成vue代码模板
第一步: 新建模板并保存 文件 --> 首选项 --> 用户代码片段 --> 输入vue,选择vue.json -->复制 第三步中的模板内容中内容保存 第二步: 添加配置,让 ...
- vue 打开html流_在vue项目中添加一个html页面,开启本地服务器
在vue项目里新增一个不需要登录的页面,那么我只能新增一个html页面了,不经过路由,直接在浏览器输入路径打开,那么就需要用到本地服务器, 1.vue里面的html页面最好放过在public文件夹里面 ...
- vue连线 插件_【Vue CLI】手把手教你撸插件
现如今 Vue 作为主流的前端框架之一,其健全的配套工具,活跃的开源社区,让广发码农热衷追捧.Vue CLI 作为其官方的开发构建工具,目前已更新迭代到 4.x 版本,其内部集成了日常开发用到的打包压 ...
最新文章
- 菜鸟的DUBBO进击之路(八):配置抽离导致${jdbc.url}被当成字符串处理
- JConsole的使用
- iOS开发-单例模式
- linux根-文件系统-目录管理-文件管理-用户及权限详解-用户组-用户管理-权限管理...
- 还在为周会发愁?你需要这13篇最新论文 | 本周值得读
- 笔记本鼠标乱跑!不知何故!
- 安装composer以及laravel框架
- Dailymotion 视频下载神器,喜欢太阳的后裔的人有福了!
- php 5.5 缓存,PHP 5.5 FastCGI缓存
- 【上外青年】人物 ‖ 何晗:天才都是异类
- ttl接地是高电平还是低电平_数电练习题
- java-php-python-ssm校园流浪猫图鉴管理系统的设计与实现计算机毕业设计
- Google浏览器下载地址
- 用html做祝福语朋友,朋友关怀祝福语(把祝福语化作露带给你)
- 一个nginx小白的vue项目部署的成功!
- 荣耀30sr升级鸿蒙,华为荣耀30怎么升级鸿蒙系统?
- 安卓(调试)有线投屏、wifi投屏到电脑笔记
- rfc 5766 TURN 中文
- 谷歌浏览器查看网页源代码
- 【Java版oj】逆波兰表达式求值
热门文章
- 30 | 图的表示:如何存储微博、微信等社交网络中的好友关系?
- (JAVA)超大小数运算
- android 杀 服务器,android busybox httpd搭建简单web服务器
- 2021辽宁大洼高中高考成绩查询,2021大洼高中最后一跑——励志高考,逆袭人生...
- 【离散数学中的数据结构与算法】四 加法法则与乘法法则
- 关于linux系统中无法识别某一命令问题的解决方案
- 吞吐量(TPS)、QPS、并发数、响应时间(RT)
- 6.0动态加载权限用PermissionGen
- 深入理解Spring Redis的使用 (五)、常见问题汇总
- WebStorm 快捷键整理