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

Vue之前端批量下载文件并以压缩包形式存储

后端返回一个文件链接的数组,前端处理下载逻辑,并且将这些文件存储在压缩包内部,这用的jszip 和 file-saver 这两个库。

步骤说明

1.使用 npm 或 yarn 安装 jszip 和 file-saver。
   npm install jszip file-saver
2.获取文件内容:

使用 fetch API 获取每个文件的内容。


3.生成压缩文件:

使用 jszip 将获取到的文件内容添加到压缩包中。
4.下载压缩文件:

使用 file-saver 将压缩包下载到客户端。

实例:
 
import JSZip from 'jszip';
import { saveAs } from 'file-saver';async function fetchAndCompressFiles(fileUrls) {const zip = new JSZip();// 并发请求文件内容const fileContents = await Promise.all(fileUrls.map(async (url) => {const response = await fetch(url);if (!response.ok) {throw new Error(`Failed to fetch ${url}: ${response.statusText}`);}return response.blob();}));// 添加文件到压缩包fileUrls.forEach((url, index) => {const fileName = url.substring(url.lastIndexOf('/') + 1);zip.file(fileName, fileContents[index], { binary: true });});// 生成压缩包 Blobconst blob = await zip.generateAsync({ type: 'blob' });// 下载压缩包saveAs(blob, 'compressed-files.zip');
}// 示例文件 URL 数组
const fileUrls = ['http://example.com/file1.txt','http://example.com/file2.txt','http://example.com/file3.txt'
];// 下载按钮的点击事件
document.getElementById('downloadButton').addEventListener('click', async () => {try {await fetchAndCompressFiles(fileUrls);} catch (error) {console.error('Error compressing and downloading files:', error);}
});

http://www.lryc.cn/news/429610.html

相关文章:

  • 【AI学习】LLaMA模型的微调成本有几何?
  • 【专题】2024全数驱动 致胜未来-数字化敏捷银行白皮书报告合集PDF分享(附原数据表)
  • 280Hz显示器哪家强
  • ROUTE_STATUS
  • v4l2(video4linux2) yuyv(yuv422)、MJPEG、H.264
  • .Net插件开发开源框架
  • 基于Spark实现大数据量的Node2Vec
  • [VMware]VMware-Esxi 6.7 厚置备转为精简置备
  • vue面试题十八
  • windows C++-windows C++/CX简介(三)
  • 《黑神话.悟空》:一场跨越神话与现实的深度探索
  • 【Kotlin设计模式】建造者模式在Android中的应用
  • Kafka 性能为什么比 RocketMQ 好
  • el-image的配套使用(表格,表单)
  • MKS MWH-5匹配器Automatc matching impedance Network手侧
  • 打卡50天------图论
  • 实现 FastCGI
  • 0x01 GlassFish 任意文件读取漏洞复现
  • RLOC_ORIGIN
  • 【Python】成功解决 NameError: name ‘reload‘ is not defined
  • Android.bp和Android.mk文件有的区别
  • 思科设备静态路由实验
  • 学习笔记第二十九天
  • Apache Paimon走在正确的道路上|一些使用体验和未来判断
  • 安装MySQL入门基础指令
  • 搜维尔科技:【研究】Haption Virtuose外科手术触觉视觉学习系统的开发和评估
  • 达梦表字段、字段类型,精度比对及更改字段SQL生成
  • 2.pandas--读取文件夹中所有excel文件进行合并
  • WPS Office两个严重漏洞曝光,已被武器化且在野利用
  • 基于Java爬取微博数据(五) 补充微博正文列表图片 or 视频 内容