vue 项目中 zip 压缩包文件下载
vue 项目中 zip 压缩包文件下载
参考文章@胡新fa ①文件下载流程
参考文章@Mr.裴 ②压缩包下载打不开问题
參考文章@sqwu
注意 : 一定要在接口中配置 responseType:‘blob’ 该属性; headers 根据需求添加.
{
responseType: ‘blob’,
headers: { ‘request-module’: ‘app_info’ }
}
a标签下载相关知识:
- 参考文章@GQguoqi
大佬代码://必须加上responseType,因为下载的zip属于流和普通的下载方式还是有较大区别的
export function Export(data) {return request({url: '',method: '',responseType: 'blob', //必须在接口中配置 responseType 属性.headers:{ 'Content-Type': 'application/json; application/octet-stream'},data: data})
}<!--第一步 --!>
<sapn @click='handleExport'>下载zip压缩包</span>
<!--第二步 --!>
import { getApplyInfoExport } from ''
<!--第三步 --!>handleExport() {let data = ''this.$confirm("是否确认导出所有数据?", "警告", {confirmButtonText: "确定",cancelButtonText: "取消",type: "warning",}).then(function() {return getApplyInfoExport(data);}).then(response => {let blob = new Blob([response.data], {type: 'application/zip'})let url = window.URL.createObjectURL(blob)const link = document.createElement('a') // 创建a标签link.href = urllink.download = '' // 重命名文件link.click()URL.revokeObjectURL(url) // 释放内存}).catch(function(err) {console.log(err)});},
我根据大佬的代码 封装了一个 api:
fileHandle(data, fileName) {let blob = new Blob([data], { type: 'application/zip' })let url = window.URL.createObjectURL(blob)const link = document.createElement('a') // 创建a标签link.href = urllink.download = fileName // 重命名文件link.click()URL.revokeObjectURL(url) // 释放内存}使用时调用:
//点击事件
downLoadHandle() {//后端给的压缩包接口zipDownLoad().then(res => {//大佬封装的方法this.fileHandle(res.data,"资产标签卡.zip")})},
下载文件后处理content-disposition,响应fileName。
下面方法可能会获取不到 content-disposition 字段,解决办法参考下面文章。
- 参考文章@GQguoqi
//前端可以这样获取 content-disposition 字段,然后加以处理。axois.get().then(res => {let filename = res.headers['content-disposition'].split(';')[1].split('filename=')[1]})// 如果获取不到 content-disposition 字段 需要后端做以下配置。
response.setHeader("Access-Control-Expose-Headers","Content-Disposition");
response.setHeader("Content-Disposition","attachment;filename="+fileNameEncoder);
注意大小写,都是Content-Disposition,我之前一个大驼峰,一个全小写失败了。
vue 项目中 zip 压缩包文件下载相关推荐
- 使用H5Stream实现rtsp视频流播放,在Vue项目中 (无插件、可多视频源播放、亲测可用)
本文主要介绍用H5Stream 在Web页面播放摄像头的RTSP视频流,从0到1的过程.包括WebSocket代理.h5ss.bat文件 运行一会就自己卡死了.H5ss服务死掉自动定时重启的脚本 等可 ...
- 如何在vue项目中系统的使用iconfont字体图标
如何在vue项目中系统的使用iconfont字体图标 前言 iconfont的特色 官网注册 在项目中使用的方式 前言 今天聊一下前端iconfont的使用方式,前端的图标经过这些年的发展,变得更系统 ...
- vue项目中table表格固定表头和首尾列
在html中实现table表格固定表头和首尾列的方法和文章很多,本文就不再赘述. 本文主要介绍vue项目中三种情景下实现table表格固定表头和首尾列 情景一:vue+element 只要在el-ta ...
- vue 打开html流_在vue项目中添加一个html页面,开启本地服务器
在vue项目里新增一个不需要登录的页面,那么我只能新增一个html页面了,不经过路由,直接在浏览器输入路径打开,那么就需要用到本地服务器, 1.vue里面的html页面最好放过在public文件夹里面 ...
- 在 Quasar cli 搭建的 vue 项目中 引用 阿里字体图标 iconfont symbol方式
在 Quasar cli 搭建的 vue 项目中 引用 阿里字体图标 iconfont 1. symbol 方式 2. font class 方式(未实践) 1. symbol 方式 首先说明一下,这 ...
- Vue项目中最简单的使用集成UEditor方式,含图片上传
Vue 3 项目参考这里 前言 封面是UEditor的 百度指数 折线图.虽然今天已经是 2018 年,且优秀的富文本编辑器层出不穷(包括移动端),但从图中可以看出UEditor仍然维持着较高的搜索热 ...
- Vue项目中最简单的使用集成百度UEditor方式,含图片上传
前言 封面是UEditor的 百度指数 折线图.虽然今天已经是 2018 年,且优秀的富文本编辑器层出不穷(包括移动端),但从图中可以看出UEditor仍然维持着较高的搜索热度.而不少公司和个人也仍然 ...
- vue项目中更换tinymce版本踩坑
项目需求: vue项目中实现多图片批量上传功能 问题: tinymce富文本编辑器的多图片批量上传插件 支持版本:5.0.4+ 项目中现有的富文本编辑器版本:4.9.4 为实现这一功能选择更换tiny ...
- vue项目中阿里图标的使用
vue项目中阿里图标的使用 在项目中使用阿里图标,先去阿里图标网站(https://www.iconfont.cn/),找到自己想要的图标,添加到一个新建项目中,然后选择Font class,点击下载 ...
- 在vue项目中使用第三方的字体图标库
如何在vue项目中使用第三方的字体图标库 以在vue项目中导入阿里字体图标库为例 1.打开阿里字体图标库的官方网址 https://www.iconfont.cn/?spm=a313x.7781069 ...
最新文章
- IDEA配置maven报错解决方案
- python工程师月薪-在三线城市,Python工程师也能拿到月薪20K?
- 手机相机自动对焦的原理
- 可扩展的SockBase设计和实现(1)
- 手把手教你python实现量价形态选股知乎_【手把手教你】Python实现基于事件驱动的量化回测...
- oracle 中时间类型 date 与 long 互转
- 典型相关分析_微生物多样研究—微生物深度分析概述
- 知名电商“猝死”办公地人去楼空:不发货退款难 消费者被坑哭了
- 数据结构与算法学习笔记01-数组
- python 学习day3
- 目前大多数个人计算机中可配置,2018年自考《计算机组成原理》试题五
- 如何调整eclipse字体大小
- c语言编译器a安卓,c语言编译器手机版下载-c语言编译器appv7.1 安卓版 - 极光下载站...
- 01背包与完全背包(动态规划)(01背包)
- HTML如何引入md5算法,HTML_VBS MD5加密算法代码,复制代码 代码如下:Private Const - phpStudy...
- Java笔记(二)(寒假)
- java循环语句有哪三类_java中的循环语句有哪些
- Struts2 开发 编码问题汇总
- mxgraph的API文档
- 供应链对企业竞争有哪些优势?
热门文章
- java积分管理系统_积分兑换系统_超市积分管理
- 理解Tensorflow的shape
- 如何平衡MMO游戏 ——Einsphoton
- 给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。
- JZOJ. 5421【NOIP2017提高A组集训10.25】嘟嘟噜
- 05 hex 格式_hex文件格式总结
- 四核处理器_一千块普通办公电脑配置清单,还是四核处理器,能玩TX全家桶
- MFC使用SQLite 学习系列 一: SQLITE_MISUSE错误
- matlabrobert锐化_Matlab图像处理系列3———空间域锐化滤波器
- C语言中文网学习进度