vue 使用jszip,file-saver下载压缩包,自定义文件夹名,文件名打包下载为zip压缩包文件,全局封装公共方法使用。
记录一下后台管理全局封装一个压缩包下载方法,文件夹名自定义,文件名自定义,压缩包名自定义。
安装必要的库
npm install jszip
npm install file-saver
自定义一个公共方法全局注入


页面使用

/** 下载按钮操作 */handleDownload() {const ids = this.ids;let selectFileList = this.dataList.filter(o => ids.includes(o.id));this.$MyUtil.jszipDown({arrFileObj: selectFileList, // 必传filePath: 'lineCodeImg', //文件下载路径字段 必传fileName: 'lineName,lineCode', //文件自定义名字 可以不穿})},
my-util.js
import JSZip from 'jszip'
import { saveAs } from 'file-saver'
import axios from 'axios'
import { getToken } from '@/utils/auth'
export default {/*** 在对象数组中找到一个属性值和参数相等的一条记录* @param {object} Obj 接受参数对象* arrFileObj 对象数组* filePath 文件下载路径字段* folderName 文件夹名字* fileName 文件自定义名字* jszipName 文件自定义名字* @returns */jszipDown(Obj) {//此方法后端返回文件流function getUrlFile(url) {return new Promise((resolve, reject) => {axios({method: 'post',headers: {'Authorization': 'Bearer ' + getToken(),'Content-Type': 'application/json; application/octet-stream'},responseType: 'blob',data: { url },url: process.env.VUE_APP_BASE_API + '/common/proxy/download'}).then(res => {resolve(res.data)}).catch(err => {reject(err.toString())})})};const zip = new JSZip()const promiseList = [];Obj.arrFileObj.forEach(file => {if (file) {let fName = ''if (Obj.fileName) {let format = file[Obj.filePath].split('.')format = format[format.length - 1]let nameL = Obj.fileName.split(',')let name = nameL.map(item=>file[item]).join('-')fName = name+'.'+format}else{fName = file[Obj.filePath].split('/')fName = fName[fName.length - 1]}const promise = getUrlFile(file[Obj.filePath]).then(data => {if (Obj.folderName) {zip.folder(file[Obj.folderName]).file(fName, data,{binary: true})} else {zip.file(fName, data,{binary: true})}});promiseList.push(promise);}});Promise.all(promiseList).then(res => {zip.generateAsync({ type: 'blob' }).then(data => saveAs(data, Obj.jszipName?Obj.jszipName:'文件压缩包.zip'))}).catch(err => {console.log(err);});}}相关文章:
vue 使用jszip,file-saver下载压缩包,自定义文件夹名,文件名打包下载为zip压缩包文件,全局封装公共方法使用。
记录一下后台管理全局封装一个压缩包下载方法,文件夹名自定义,文件名自定义,压缩包名自定义。 安装必要的库 npm install jszip npm install file-saver自定义一个公共方法全局注入 页面使用 /** 下载按钮操作 */handleDownload() {const i…...
计网八股文
1.HTTP和HTTPS的区别 安全性: HTTP:是未加密的协议,意味着数据在传输过程中可以被截获、篡改或监听。它不提供任何数据加密。HTTPS:在HTTP的基础上加入了SSL/TLS协议,提供了数据加密、完整性校验和身份验证。这使得传输…...
[001-03-007].第07节:Redis中的事务
我的后端学习大纲 我的Redis学习大纲 1、Redis事务是什么: 1.可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化, 按顺序地串行化执行而不会被其他命令插入,不许加塞2.一个队列中,一次性、…...
WLAN实验简述
一:配置生产AP1上级接入层交换机LSW3 sys [Huawei]sysname LSW3 [LSW3]undo info-center enable [LSW3]vlan batch 10 100 [LSW3]int g0/0/2 [LSW3-GigabitEthernet0/0/2]port link-type trunk [LSW3-GigabitEthernet0/0/2]port trunk allow-pass vlan 10 100 [LSW…...
Docker简介在Centos和Ubuntu环境下安装Docker
文章目录 1.Docker简介2.Docker镜像与容器3.安装Docker3.1 Centos环境3.2 Ubuntu环境 1.Docker简介 Docker 是一个开源的应用容器引擎,它允许开发者将应用程序及其依赖项打包到一个可移植的容器中,然后发布到任何流行的 Linux 或 Windows 操作系统上。D…...
C:字符串函数(续)-学习笔记
穗 一些闲话: 最近玩了这款饿殍-明末千里行,不知大家是否有听过这款游戏,颇有感触!!! 游戏中最让我难以忘怀的便是饿殍穗线的故事,生在如今时代的我之前无法理解杜甫在目睹人间悲剧时的心情&…...
Depth靶机详解
靶机下载地址 https://www.vulnhub.com/entry/depth-1,213/ 主机发现 arp-scan -l 端口扫描 nmap -sV -A -T4 192.168.229.156 端口利用 http://192.168.229.156:8080/ 目录扫描 dirb "http://192.168.229.156:8080" dirsearch -u "http://192.168.229.15…...
go get -u @latest没有更新依赖模块
使用 go get -u gitee.com/qingfeng-169/hello-blatest 时,如果没有进行更新,可能有以下几种原因: 1. 没有发布稳定版本 (vX.X.X) latest 表示获取该模块最新的稳定版本(即带有 vX.X.X 形式的版本号),而不…...
介绍一些免费 的 html 5模版网站 和配色 网站
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、H5 网站介绍网站 二、配色网站个人推荐 前言 提示:以下是本篇文章正文内容,下面案例可供参考 一、H5 网站介绍 以下是一些提供免费…...
【C++】入门基础(下)
Hi!很高兴见到你~ 目录 7、引用 7.3 引用的使用(实例) 7.4 const引用 【第一分点】 【第二分点1】 【第二分点2】 7.5 指针和引用的关系(面试点) 8、inline 9、nullptr Relaxing Time! ———…...
Spring Boot 集成 MongoDB - 入门指南
引言 随着NoSQL数据库的流行,MongoDB 成为了许多现代Web应用程序的首选数据库之一。它提供了高性能、高可用性和易于扩展的能力。Spring Boot 框架以其开箱即用的理念简化了Java应用程序的开发过程。本文将指导您如何在Spring Boot项目中集成MongoDB,以…...
基于云计算的虚拟电厂负荷预测
基于云计算的虚拟电厂负荷预测 随着电网规模的扩大及新能源的不断应用,并网电网的安全性和经济性备受关注。 电网调度不再是单一或局部控制,而是采用智能网络集成方式调度 。 智能电网应具有以下特点:坚强自愈,可以抵御外来干扰甚…...
Android应用性能优化
Android手机由于其本身的后台机制和硬件特点,性能上一直被诟病,所以软件开发者对软件本身的性能优化就显得尤为重要;本文将对Android开发过程中性能优化的各个方面做一个回顾与总结。 Cache优化 ListView缓存: ListView中有一个回…...
fiddler抓包01:工具介绍
课程大纲 fiddler是一款常见的抓包工具,可以对web端和移动端的接口请求进行抓包(截获)、分析、编辑、模拟等,还可以导出jmeter、Loadrunner测试脚本。 1、原理 fiddler作为代理服务器,拦截请求和服务器响应。 2、使用…...
Spring Boot母婴商城:打造一站式购物体验
1 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关数据进行科学化,规范化管理。这样的大环境让那些止步不前&#…...
【面试八股总结】GC垃圾回收机制
垃圾回收策略(Garbage Collection,GC)用于回收不再使用的内存,避免系统的内存被占满。Go1.3之前采用标记清除法, Go1.3之后采用三色标记法,Go1.8采用三色标记法混合写屏障。 前置概念: 1&#x…...
arcgisPro修改要素XY容差
1、在arcgisPro中XY容差的默认值为1个毫米,及0.001米。为了更精细的数据,需要提高这个精度,如何提高呢? 2、如果直接在数据库下新建要素类,容差只能调至0.0002米。所以,需要在数据库下新建要素数据集。 3…...
Java 21的Enhanced Deprecation的笔记
Java Core Libraries Enhanced Deprecation 废弃API,一般可以理解为不推荐开发者在项目中使用的API,当前为了保持兼容,在JDK中保留,未来可能会删除。 作为开发者,使用工具jdeprscan可以方便的查找现有代码中存在的一些…...
Ubuntu下Git使用教程:从入门到实践
引言 在软件开发和版本控制领域,Git无疑是最为流行的工具之一。它不仅能够帮助我们高效地管理代码,还能促进团队协作,确保项目的持续集成与交付。对于使用Ubuntu操作系统的开发者而言,掌握Git的使用技巧尤为重要。本文将带您一步…...
【开放词汇检测】基于MMDetection的MM-Grounding-DINO实战
文章目录 摘要安装基础环境新建虚拟环境安装pytorch安装openmim、mmengine、mmcv安装 MMDetection验证安装配置OV-DINO环境 MMDetection的MM-Grounding-DINO详细介绍测试结果Zero-Shot COCO 结果与模型Zero-Shot LVIS ResultsZero-Shot ODinW(野生环境下的目标检测&…...
AI 日报 - 2026年4月4日(周六)
🔬 科技类 5 条1. OpenAI完成1220亿美元史诗级融资,估值直逼万亿OpenAI在3月31日官宣完成了人类商业史上最大单笔私募融资——1220亿美元,投后估值8520亿美元。其中亚马逊一口气投了500亿,但有个小条款:剩余350亿要等O…...
IwrQk:5个关键功能打造完美的Iwara跨平台视频社区体验
IwrQk:5个关键功能打造完美的Iwara跨平台视频社区体验 【免费下载链接】iwrqk Unofficial Iwara Flutter Client 项目地址: https://gitcode.com/gh_mirrors/iw/iwrqk IwrQk是一款基于Flutter框架开发的跨平台Iwara客户端应用,专为iOS和Android设…...
像素时装锻造坊应用场景:NFT项目像素角色皮肤的批量生成方案
像素时装锻造坊应用场景:NFT项目像素角色皮肤的批量生成方案 1. 项目背景与核心价值 像素时装锻造坊(Pixel Fashion Atelier)是一款专为NFT项目设计的像素角色皮肤批量生成工具。它基于Stable Diffusion与Anything-v5技术栈,将传…...
Claude Code /buddy 命令失效了?教你一招绕过限制,直接解锁金色传说!
最近升级到 Claude Code > v2.1.90 的小伙伴可能发现,输入 /buddy 命令后只会提示: buddy is unavailable on this configuration GitHub 上的 issue 也有相关讨论,官方把这个命令禁用了。那刚安装或升级的用户就没法体验 buddy 了吗&…...
子代理拆分任务:为什么要用上下文隔离保护 Agent 的思路清晰
子代理拆分任务:为什么要用上下文隔离保护 Agent 的思路清晰 很多人第一次看到子代理,注意力会先落在“一个 Agent 还能再叫出另一个 Agent”这件事上。这个现象当然有意思,但如果只停在这里,很容易错过 s04 真正想解决的问题。 …...
从底层源码深入分析Bean的实例化
在技术领域,我们常常被那些闪耀的、可见的成果所吸引。今天,这个焦点无疑是大语言模型技术。它们的流畅对话、惊人的创造力,让我们得以一窥未来的轮廓。然而,作为在企业一线构建、部署和维护复杂系统的实践者,我们深知…...
零侵入、极简适配!飞桨CINN实现类CUDA硬件“即插即用”
简介继飞桨框架3.1版本推出“插件式 CUDA兼容类硬件接入方案”(飞桨实现插件式硬件图接入方案,模型推理加速2.2倍),实现运行时(Runtime)与算子(Kernel)的高效复用后,飞桨…...
Navicat试用期无限重置完全指南:4个创新方法解决14天限制
Navicat试用期无限重置完全指南:4个创新方法解决14天限制 【免费下载链接】navicat_reset_mac navicat mac版无限重置试用期脚本 Navicat Mac Version Unlimited Trial Reset Script 项目地址: https://gitcode.com/gh_mirrors/na/navicat_reset_mac 作为数据…...
3步永久解锁IDM:从试用期烦恼到终身免费使用的完整指南
3步永久解锁IDM:从试用期烦恼到终身免费使用的完整指南 【免费下载链接】IDM-Activation-Script IDM Activation & Trail Reset Script 项目地址: https://gitcode.com/gh_mirrors/id/IDM-Activation-Script IDM Activation Script(IAS&#…...
[特殊字符]OpenClaw 优化系列(三):基于WSL的OpenClaw备份恢复与文件交互
告别环境崩塌恐惧症,一文掌握WSL下OpenClaw的数据安全与高效操作 Windows下WSL环境准备已经在前面讲了:🦞 OpenClaw 部署环境准备:Windows下WSL安装及配置全攻略。至于OpenClaw部署,教程已经很多很多了,只…...
