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

vue实现批量下载文件流并压缩

为了实现文件流压缩,我们可以使用 JSZipFileSaver 这两个第三方库。JSZip 是一个用于创建、读取和编辑 .zip 文件的 JavaScript 库,而 FileSaver 则用于在客户端保存文件。

  • ‌JSZip‌:用于创建和操作zip文件。可以通过 file 方法将文件添加到zip中,通过 generateAsync
    方法生成zip文件。 ‌
  • ‌FileSaver‌:用于将生成的zip文件保存到本地。通过 saveAs 方法可以实现文件保存。

首先要安装插件

npm install jszip file-saver

然后,在Vue组件中编写代码实现文件流压缩功能。

<template><div><button @click="downloadZip">下载压缩包</button></div>
</template><script>
import JSZip from 'jszip';
import { saveAs } from 'file-saver';
import axios from 'axios';export default {methods: {async downloadZip() {const zip = new JSZip();// 下面是示例文件名,项目中改成勾选的数据const fileNames = ['file1.txt', 'file2.txt', 'file3.txt']; // 示例文件名const promises = fileNames.map(fileName => this.getFileAsStream(fileName).then(blob => {zip.file(fileName, blob);}));await Promise.all(promises);const content = await zip.generateAsync({ type: 'blob' });saveAs(content, '批量下载.zip');},async getFileAsStream(fileName) {// 这里假设你有一个后端接口可以返回文件流const response = await axios.get(`/path/to/your/api/${fileName}`, {responseType: 'arraybuffer' // 如果不行改成blob });const blob = new Blob([response.data], { type: 'application/octet-stream' });return blob;}}
};
</script>
http://www.lryc.cn/news/509849.html

相关文章:

  • 前端入门之VUE--ajax、vuex、router,最后的前端总结
  • 安装k8s涉及命令(方便放到txt离线使用)
  • FLV视频封装格式详解
  • 搭建vue3+vant项目架构
  • 【Linux】进程间通信 -> 匿名管道命名管道
  • 大数据开发学习路线
  • 华为云计算HCIE笔记05
  • wordpress网站用token登入开发过程
  • Python基础知识回顾
  • C++--------效率和表示
  • 在 Ubuntu 服务器上添加和删除用户
  • 安卓 SystemServer 启动流程
  • 深度分析 es multi_match 中most_fields、best_fields、cross_fields区别
  • 中职计算机网络技术理实一体化实训室建设方案
  • Java技术专家视角解读:SQL优化与批处理在大数据处理中的应用及原理
  • 数据结构(Java版)第六期:LinkedList与链表(一)
  • 云边端一体化架构
  • 人工智能之基于阿里云进行人脸特征检测部署
  • 基于高云GW5AT-15 FPGA的SLVS-EC桥MIPI设计方案分享
  • MPLS小实验:利用LDP动态建立LSP
  • C++ 面向对象编程
  • 我的Serverless实战——引领云计算的下一个十年,附答案
  • 有哪些其他方法可以实现数据一致性验证?
  • vue 基础学习
  • HarmonyOS NEXT 实战之元服务:静态案例效果---查看国际航班服务
  • PetaLinux 内核输出信息的获取方式
  • Android使用辅助服务AccessibilityService实现自动化任务
  • 工业大数据分析算法实战-day15
  • C语言实现顺序表详解
  • 【ES6复习笔记】对象方法扩展(17)