当前位置: 首页 > news >正文

前端批量下载文件打包为zip

多文件需要一次性下载为zip文件

这是近期遇到的一个需求,本身是多文件上传的,下载时单个下载太慢又繁杂,用户希望能一次性批量下载,就选择了jszip

import axios from "axios"
import JSZip from "jszip"
import FileSaver from "file-saver"const getFile = url => {return new Promise((resolve, reject) => {axios({headers: {'Cache-control': 'no-cache'},method: "get",url,responseType: "arraybuffer"}).then(data => {resolve(data.data)}).catch(error => {reject(error)})})
}const downloadFromAliOss = function (fileArr, zipName) {const zip = new JSZip()const promises = []fileArr.forEach(item => {const promise = getFile(item.url).then(data => {const url = new URL(item.url)// 获取文件类型// const type = url.pathname.split('.').pop() // 'jpg'// const typeArr = item.url.split(".")// const type = typeArr[typeArr.length - 1]// 默认文件名·// const nameArr = item.url.split("/")const name = item.name || url.pathname.split('/').pop()// const foldPath = item.foldPath || ""zip.file(name, data, {binary: true})})promises.push(promise)})Promise.all(promises).then(() => {zip.generateAsync({ type: "blob" }).then(content => {FileSaver.saveAs(content, zipName || `文件.zip`)})})
}export default downloadFromAliOss

调用

downloadalioss(signedFileList, '附件.zip')

相关文章:

  • 机器学习知识自然语言处理入门
  • 基于PXIE 总线架构的Kintex UltraScale 系列FPGA 高性能数据预处理板卡
  • 黑马k8s(九)
  • 链表的中间结点数据结构oj题(力扣876)
  • 容器化-k8s-介绍及下载安装教程
  • python的家教课程管理系统
  • 等离子模块【杀菌消毒】
  • MIPI接口设计
  • 【Linux】ssh命令 – 安全的远程连接服务
  • Vue3项目,子组件默认加载了两次,使用 defineAsyncComponent 引入组件后只加载一次
  • InfluxDB 2.7 连续查询实战指南:Task 替代方案详解
  • 几个正整数常用的位运算操作
  • [特殊字符][特殊字符]知识库PHP版 | ChatMoneyAI宝塔面板Docker多部署
  • JMeter 教程:编写 GET 请求脚本访问百度首页
  • 描述性统计图表
  • Python-homework
  • 前端面经 8 JS中的this 手写call apply bind方法
  • Go语言爬虫系列教程 实战项目JS逆向实现CSDN文章导出教程
  • CSS- 2.1 实战之图文混排、表格、表单
  • 搭建运行若依微服务版本ruoyi-cloud最新教程
  • “GoFun出行”订单时隔7年扣费后续:平台将退费,双方已和解
  • 巴菲特最新调仓:一季度大幅抛售银行股,再现保密仓位
  • 商务部召开全国离境退税工作推进会:提高退税商店覆盖面,扩大入境消费
  • 350种咖啡主题图书集结上海,20家参展书店买书送咖啡
  • 【社论】打破“隐形高墙”,让老年人更好融入社会
  • 习近平向多哥新任领导人致贺电