vue2 点击按钮下载文件保存到本地(后台返回的zip压缩流)

// import './mock/index.js';  // 该项目所有请求使用mockjs模拟 去掉mock
   
   
 页面url下载

   
   
  1. console.log( 'res', res)
  2. / /token 是使页面不用去登录了
  3. if (res. file) {
  4. window. location.href =
  5. Vue. prototype.$config.VUE_APP_BASE_IDSWAPI +
  6. Vue. prototype.$config.VUE_APP_IDSW +
  7. '/service/models/download?action=zip&filepath=' +
  8. encodeURIComponent(encodeURIComponent(res[ 'file'])) +
  9. ` &token =${localStorage.getItem( 'inmsToken')} &accessToken =${localStorage.getItem( 'accessToken')}`
  10. }

responseType: "blob",   

let blob = new Blob([response.data], { type: "application/zip" }); //注意是response 或者 response.data
let url = window.URL.createObjectURL(blob);  这三句最重要!!!


   
   
  1. / /普通代码
  2. axios.post(postUrl, params, {responseType: 'arraybuffer'}). then(res = > {
  3. / / 创建Blob对象,设置文件类型
  4. let blob = new Blob([res. data], { type: "application/vnd.ms-excel"})
  5. let objectUrl = URL.createObjectURL(blob) / / 创建URL
  6. location.href = objectUrl;
  7. URL.revokeObjectURL(objectUrl); / / 释放内存
  8. })


   
   
  1. downloadAll() {
  2. axios({
  3. method: "get",
  4. url: "api/TemplateDownload/GetAllTemplateZIP",
  5. headers: {
  6. "content-type": "application/json; charset=utf-8",
  7. Authorization: Cookies. get( "token") || "",
  8. },
  9. responseType: "blob",
  10. })
  11. . then((response) = > {
  12. let blob = new Blob([response. data], { type: "application/zip" });
  13. let url = window.URL.createObjectURL(blob);
  14. const link = document.createElement( "a"); / / 创建a标签
  15. link.href = url;
  16. link.download = "模板下载"; / / 重命名文件
  17. link.click();
  18. URL.revokeObjectURL(url); / / 释放内存
  19. this.checkList = [];
  20. })
  21. .catch(( error) = > {
  22. console.log( error. data);
  23. });
  24. },
  25. / /excel
  26. let blob = new Blob([response. data], { type: "application/vnd.ms-excel" });
  27. dl() {
  28. axios({
  29. method: "get",
  30. url: "http://10.180.170.3:8794/tRptMwStdClt/exportData?time=202104",
  31. responseType: "arraybuffer",
  32. })
  33. . then((response) = > {
  34. console.log(response);
  35. let blob = new Blob([response. data], {
  36. type: "application/vnd.ms-excel",
  37. });
  38. let url = window.URL.createObjectURL(blob);
  39. const link = document.createElement( "a"); / / 创建a标签
  40. link.href = url;
  41. link.download = "模板下载"; / / 重命名文件
  42. link.click();
  43. URL.revokeObjectURL(url); / / 释放内存
  44. this.checkList = [];
  45. })
  46. .catch(( error) = > {
  47. console.log( error. data);
  48. });
  49. },

获取到了后台传过来的excel文件 前端用vue怎么接收并导出? - 中文 - Vue Forum

vue.js前端实现excel表格导出和获取headers里的信息 - 五个半柠檬 - OSCHINA - 中文开源技术交流社区

java后台需要设置


   
   
  1. response.addHeader( "Content-Disposition", "attachment;filename=" + fileName + ".xlsx");
  2. response.setHeader( "Access-Control-Expose-Headers", "Content-Disposition");
  3. 才能获取到文件名等信息


   
   
  1. / / 导出execel 2
  2. handleExcel() {
  3. this.$http({
  4. url: this.$http.adornUrl(url),
  5. method: "post",
  6. responseType: "blob", / /!!!!
  7. params: this.$http.adornParams({
  8. userAccount: this.userName,
  9. }),
  10. }). then((res) = > {
  11. / / console.log(res, "res");
  12. let blob = new Blob([res. data], { type: "application/vnd.ms-excel" });
  13. let fileName = decodeURI(
  14. response.headers[ "content-disposition"].split( ";")[ 1].split( "=")[ 1]
  15. );
  16. let url = window.URL.createObjectURL(blob);
  17. const link = document.createElement( "a"); / / 创建a标签
  18. link.href = url;
  19. link.download = fileName; / / 重命名文件
  20. link.click();
  21. URL.revokeObjectURL(url); / / 释放内存
  22. });
  23. },

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/337978.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

VRPSolverEasy:支持VRP问题快速建模的精确算法Python包

文章目录 前言一步步安装免费版主要模块介绍1. depot point2. customer point3. links4. vehicle type VRPTW 算例数据说明模型建立输出求解状态及结果 前言 VRPSolverEasy 是用于车辆路径问题(VRP)的最先进的分支切割和定价算法求解器1,它的…

基于Servlet建立表白墙网站

目录 一、设计思想 二、设计表白墙页面(前端--VSCode) 1、效果图 2、html部分(网页上有哪些内容) 3、css部分(页面内容的具体样式) 4、js部分(页面行为) 三、借助Servlet实现客…

攻防世界——Mysterious

运行就是一个要你输入的题型,这种题我们要么得到password,要么直接不管这个得到flag int __stdcall sub_401090(HWND hWnd, int a2, int a3, int a4) {int v4; // eaxchar Source[260]; // [esp50h] [ebp-310h] BYREF_BYTE Text[257]; // [esp154h] [eb…

4.postman批量运行及json、cvs文件运行

一、批量运行collection 1.各个接口设置信息已保存,在collection中点击run collection 2.编辑并运行集合 集合运行时,单独上传图片时报错。需修改postman设置 二、csv文件运行 可新建记事本,输入测试数据,后另存为新的文本文件&…

call_once 单例模式 Singleton / condition_variable 与其使用场景

一、call_once 单例模式 Singleton 大家可以先看这篇文章&#xff1a;https://zh.cppreference.com/w/cpp/thread/call_once /*std::call_oncevoid call_once( std::once_flag& flag, Callable&& f, Args&&... args ); */ #include <iostream> #i…

【算法与数据结构】474、LeetCode一和零

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;本题要找strs数组的最大子集&#xff0c;这个子集最多含有 m m m个0和 n n n个1。本题也可以抽象成一个…

云仓酒庄的品牌雷盛红酒LEESON分享从事酒行业有前途吗?

化在全球都有着悠久的传承文化&#xff0c;每逢传统节日&#xff0c;新朋好友相聚庆贺&#xff0c;酒在好多场合都是不可或缺的选项。酒的消费群体也是十分庞大&#xff0c;有不少朋友问云仓酒庄&#xff0c;从事酒的行业能不能挣钱&#xff0c;有没有前途&#xff1f;回答好这…

【Qt之模型视图】1. 模型和视图架构

1. 模型/视图架构是什么及有什么用 MVC&#xff08;Model-View-Control&#xff09;是一种源自Smalltalk的设计模式&#xff0c;通常用于构建用户界面。 MVC由三种类型的对象组成。模型是应用对象&#xff0c;用来表示数据&#xff1b;视图是模型的用户界面&#xff0c;用来显…

Windows 拦截系统睡眠、休眠

前言 在前一篇文章中&#xff0c;我们分析了以编程方式拦截 Winlogon 相关回调过程的具体做法&#xff0c;我们给出了一种拦截 RPC 异步回调的新方法——通过过滤特征码&#xff0c;我们可以对很多系统热键以及跟电源有关的操作做出“提前”响应。但是我们给出的代码并不能真正…

代码随想录第十八天 513 找树左下角的值 112 路径之和 106 从中序与后序遍历序列构造二叉树

LeetCode 513 找树左下角的值 题目描述 给定一个二叉树的 根节点 root&#xff0c;请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 1: 输入: root [2,1,3] 输出: 1示例 2: 输入: [1,2,3,4,null,5,6,null,null,7] 输出: 7 思路 1.确定递…

matlab appdesigner系列-常用14-树(复选框)

之前系列常用9&#xff0c;为单个复选框。树&#xff0c;就是多个复选框形成的选项组 示例&#xff1a;列举湖北省的几个城市 湖北省 武汉 宜昌 襄阳 荆州 1&#xff09;将树&#xff08;复选框&#xff09;拖拽到画布上&#xff0c;方式1就是&#xff1a;文字可以在右侧…

课题学习(十九)----Allan方差:陀螺仪噪声分析

一、介绍 Allan方差是一种分析时域数据序列的方法&#xff0c;用于测量振荡器的频率稳定性。该方法还可用于确定系统中作为平均时间函数的本征噪声。该方法易于计算和理解&#xff0c;是目前最流行的识别和量化惯性传感器数据中存在的不同噪声项的方法之一。该方法的结果与适用…

131. 分割回文串 - 力扣(LeetCode)

问题描述 给你一个字符串 s&#xff0c;请你将 s 分割成一些子串&#xff0c;使每个子串都是 回文串 。返回 s 所有可能的分割方案。 回文串 是正着读和反着读都一样的字符串。 输入示例 s "aab"输出示例 [["a","a","b"],["…

PS滤镜插件:Adobe Camera Raw 16 for Mac中文激活版

Adobe Camera Raw是Adobe公司开发的一款用于处理数码相机RAW格式文件的软件插件。它可以在Adobe Photoshop、Adobe Bridge和Adobe Lightroom等软件中使用&#xff0c;用于调整RAW文件的曝光、白平衡、对比度、色彩饱和度、锐化等参数&#xff0c;从而得到更好的图像质量。 软件…

STM32之模数转换器(ADC)

一、模数转换器介绍 1、模数转换器简介 为什么使用模拟转换器&#xff1f;&#xff1f; 因为MCU只能识别01010101的数字信号&#xff0c;而外部物理信号均为模拟信号&#xff0c;如声音、光、电等&#xff0c;所以为了让计算机能够处理外部物理的信息&#xff0c;必须要通过…

增加CO气体报警、氢气报警以及烟雾报警

标题&#xff1a;增加CO气体报警、氢气报警以及烟雾报警。 内容&#xff1a;通过ADC采集通道&#xff0c;实现传感器电压的采集&#xff0c;通过对电压进行判断是否报警&#xff0c;&#xff08;理论上应该可以计算出气体浓度&#xff0c;通过气体浓度来判断是否报警&#xff…

入门分布式事务,2PC 3PC

分布式事务 什么是分布式一致性 在分布式系统中&#xff0c;为了保证数据的高可用&#xff0c;通常&#xff0c;我们会将数据保留多个副本(replica)&#xff0c;这些副本会放置在不同的物理的机器上。为了对用户提供正确的增\删\改\查等语义&#xff0c;我们需要保证这些放置…

VRRP协议负载分担

VRRP流量负载分担 VRRP负载分担与VRRP主备备份的基本原理和报文协商过程都是相同的。同样对于每一个VRRP备份组,都包含一个Master设备和若干Backup设备。与主备备份方式不同点在于:负载分担方式需要建立多个VRRP备份组,各备份组的Master设备可以不同;同一台VRRP设备可以加…

骑砍战团MOD开发(39)-RTS塔防保卫卡拉迪亚大陆

骑砍1战团mod开发-RTS塔防保卫卡拉迪亚大陆_哔哩哔哩bilibili_骑马与砍杀https://www.bilibili.com/video/BV1hw411E7bP/骑砍战团MOD开发(28)-骑砍联盟之RTS大规模军团竞技-CSDN博客文章浏览阅读369次&#xff0c;点赞11次&#xff0c;收藏7次。【代码】骑砍战团MOD开发(28)-骑…

SpringCloud Alibaba 深入源码 - Nacos 分级存储模型、支撑百万服务注册压力、解决并发读写问题(CopyOnWrite)

目录 一、SpringCloudAlibaba 源码分析 1.1、SpringCloud & SpringCloudAlibaba 常用组件 1.2、Nacos的服务注册表结构是怎样的&#xff1f; 1.2.1、Nacos的分级存储模型&#xff08;理论层&#xff09; 1.2.2、Nacos 源码启动&#xff08;准备工作&#xff09; 1.2.…
最新文章