Vue axios 后端返回excel文件流改如何下载
程序员文章站
2024-03-20 17:32:40
...
这里先介绍一下Blob对象
Blob的英文全称是Binary Large Object,翻译成汉语是二进制大型对象。
HTML5中,Blob是一种JavaScript数据类型,用于存储二进制数据。
此对象中存储的数据没有必要非得是JavaScript原生格式数据,也就是没必要是JavaScript内部对象。
比如可以是File对象,它继承Blob对象,并扩展了一些功能。
-
构造函数方式:
这是最为基础的方式,与其他构造函数创建对象实例完全一样。
语法结构:
let blob = new Blob(array, options);
参数解析:
(1).array:必需,数组,数组成员可以是二进制对象或者字符串。
(2).options:可选,对象,用于设置数组中数据的MIME类型。
首先设置返回的responseType: ‘bolb’
export function() {
return request({
url: '',
method: 'get',
params: {},
responseType: 'blob'
})
}
返回结果处理
.then( res => {
let blob = new Blob([res], {type: res.type})
let downloadElement = document.createElement('a')
let href = window.URL.createObjectURL(blob); //创建下载的链接
downloadElement.href = href;
downloadElement.download = fileName; //下载后文件名
document.body.appendChild(downloadElement);
downloadElement.click(); //点击下载
document.body.removeChild(downloadElement); //下载完成移除元素
window.URL.revokeObjectURL(href); //释放blob对象
})
代码分析如下:
(1).首先,将字符串生成一个Blob对象。
(2).然后通过URL.createObjectURL方法生成一个对应Blob对象的URL。
(3).URL以blob:开头,其后是一串标识符,唯一标识内存中的指定Blob对象。
(4).点击动态生成的链接,即可实现下载功能,用到了HTML5新增的download属性。
URL对象也是HTML5新增,尚属实验性。
同样的道理,也可以将图片转换为Blob对象,然后再使用URL.createObjectURL方法生成一个地址。
上一篇: java 实现二分查找
下一篇: Java开发操作Cookie示例
推荐阅读
-
Vue axios 后端返回excel文件流改如何下载
-
axios 请求下载文件excel,后端返回二进制的文件
-
vue中使用axios下载java后台返回文件流导出excel文档
-
vue后端返回文件流,前端实现Excel文件导出自定义文件名(新)
-
vue-cli+axios实现文件上传下载功能(下载接收后台返回文件流)
-
vue-cli+axios实现文件上传下载功能(下载接收后台返回文件流)
-
vue项目,axios请求图片接口,接口返回的是文件流的形式,如何转换成图片?
-
vue项目,axios请求图片接口,接口返回的是文件流的形式,如何转换成图片?
-
vue文件下载(我这里下载的是excel表格)ajax下载,后端java excel导出(实现vue axios引入及配置拦截器 axios发送请求下载文件 后端excel下载 )
-
Excel文档导出-后端返回文件流,前端实现下载功能