使用vue 对二进制文件 实现下载(blob对象
有很多网站会涉及到文件下载,这里我们使用axios 发送请求 接受数据
第一步 模仿jQ 封装接口
Vue.prototype.$xlsx_post = function (url, data, fun, err) {
var userName = getCookie("username")
axios({
method: 'post',
url: url,
responseType: "blob",
headers: {
'Authorization': userName ? userName.token_type + userName.access_token : "Basic emh4eTp6aHh5"
},
data: data
}).then(function (res) {
if (fun) {
fun(res)
}
})
.catch(function (error) {
if (err) {
err(error)
}
});
}
注意 : responseType 要设置为 blob 告诉服务器你期望的响应格式。
第二步 发送请求 接受数据
this.$xlsx_post(
`/rsgl/rstrainperson/exportExcel`,
{
trainId: this.$route.query.id,
userId: this.multipleSelection.join(",")
},
res => {
const blob = new Blob([res]); // 创建blob对象
const fileName = "培训管理.xlsx";
const elink = document.createElement("a"); // 创建的标签
elink.download = fileName;
elink.style.display = "none";
elink.href = URL.createObjectURL(blob); // 创建url
document.body.appendChild(elink); // 把 创建的标签追加到body里
elink.click();
URL.revokeObjectURL(elink.href); // 释放URL 对象
document.body.removeChild(elink); // 移除标签
this.$message({
message: "导出成功!!!",
type: "success"
});
this.$refs.multipleTable.clearSelection();
},
err => {
this.$message.error("服务器错误");
throw err;
}
);
好了, 希望对大家有所帮助
使用vue 对二进制文件 实现下载(blob对象的更多相关文章
- Taro文件上传:Blob Url下载Blob对象本身并通过接口上传到服务器
最近项目的文件上传遇到一个问题,就是Taro的chooseImage传给回调的是一个Blob对象,一般来说,上传控件都会导出Data Url,而Taro给了一个Blob Url,问题在于,我直接令im ...
- vue 二进制文件的下载(解决乱码和解压报错)
问题描述:项目中使用的是vue框架进行开发,因为文件下载存在权限问题,所以并不能通过 a 链接的 href 属性直接赋值 URL进行下载, (如果你的文件没有下载权限,可以直接通过href属性赋值UR ...
- blob - 二进制文件流下载
/** * 返回值文件类型为 blob 二进制流文件 * responseType: 'blob' * params 接口所需参数 * 命名文件名:依据时间戳命名文件名 * (导出时需要延迟,否则导出 ...
- Vue通过Blob对象实现导出Excel功能
不同的项目有不同的导出需求,有些只导出当前所显示结果页面的表格进入excel,这个时候就有很多插件,比如vue-json-excel或者是Blob.js+Export2Excel.js来实现导出Exc ...
- 【前端知乎系列】ArrayBuffer 和 Blob 对象
本文首发在 个人博客 更多丰富的前端学习资料,可以查看我的 Github: <Leo-JavaScript>,内容涵盖数据结构与算法.HTTP.Hybrid.面试题.React.Angul ...
- vue通过get方法下载java服务器excel模板
vue方法 handleDownTemplateXls(fileName){ if(!fileName || typeof fileName != "string"){ fileN ...
- [HTML5] Blob对象
写在前面 本篇主要总结Blob对象属性及作用,通过DEMO介绍Blob对象的应用场景. Blob对象 一直以来,JS都没有比较好的可以直接处理二进制的方法.而Blob的存在,允许我们可以通过JS直接操 ...
- JS 之Blob 对象类型
原文 http://blog.csdn.net/oscar999/article/details/36373183 什么是Blob? Blob 是什么? 这里说的是一种Javascript的对象类型. ...
- 利用 jQuery-photoClip插件 实现移动端裁剪功能并以Blob对象上传
最近客户要求实现论坛贴子附件裁剪功能,没有考虑js与ios.android容器交互解决方案,单纯用js去实现它的.由于本来附件上传用的别的插件实现的,所以是在此基础上费了不少劲,才把jQuery-ph ...
随机推荐
- Jmeter If控制器
"${xxx}"=="1" 或者 "${xxx}"!="2"
- OracleSpatial函数实例
Oracle Spatial操作geometry方法 Oracle Spatial中SDO_GEOMETRY类型: CREATE TYPE SDO_GEOMETRY AS OBJECT( SDO_ ...
- UIImageView xib里面拉伸图片技巧
拉伸图片的时候代码里和xib里面的图片名字去掉@2x,但是原始图片文件得要xxx@2x.png The X and Y values seem to be the positions for the ...
- hdu 3873 Invade the Mars(有限制的最短路 spfa+容器)
Invade the Mars Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 365768/165536 K (Java/Others ...
- react框架下,在页面内加载显示PDF文件,关于react-pdf-js的使用注意事项
react框架下,在页面内加载显示PDF文件,关于react-pdf-js的使用注意事项 之前做了一个需求,在注册账号的时候,让用户同意服务条款, 服务条款是一个PDF文件, 这就需要在react内加 ...
- xUtils框架的介绍(三)
接上回,继续介绍xUtils的最后两个模块:DbUtils和HttpUtils.首先先介绍第一个SQLite数据库操纵的简单ORM框架,只要能理解xUtils为我们提供的api,相信你也能熟练的把Db ...
- localStorage、sessionStorage、cookie的区别
localStorage: 存储的内容大概20MB 不同浏览器不能共享,但是在同一浏览器的不同窗口中可以共享 永久生效,它的数据是存储的硬盘上,并不会随着页面或者浏览器的关闭而清楚,需手动清除 ses ...
- H3C PPP MP配置示例二(续)
- 快速理解bootstrap,bagging,boosting,gradient boost-三个概念
1 booststraping:意思是依靠你自己的资源,称为自助法,它是一种有放回的抽样方法,它是非参数统计中一种重要的估计统计量方差进而进行区间估计的统计方法. 其核心思想和基本步骤如下: (1 ...
- Python--day48--面向对象回顾
面向对象回顾: 例1: 例2: 特殊方法(要背会):