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

vue中合并下载打包视频图片

    async is_downFile(list) {if (list.length > 0) {const config = {downloadList: list,suffix: "打包后文件名称.zip",};// downloadStatus 成功后状态可自行加业务const { downloadStatus } = await attachDownload(config);return { downloadStatus };}}
// fileDownload.js
// 相关依赖
// yarn add jszip
// yarn add file-saver
import JSZip from "jszip";
import FileSaver from "file-saver";
export async function attachDownload(config) {const { downloadList, suffix } = configconst zip = new JSZip();const cache = {};let downloadStatus = falseconst downloadPromises = downloadList.map(async (item) => {try {if (item.url) {//${item.Title}_${item.FileID} 打包后视频或者图片对应名称// item.type 对应后缀名称const data = await getImgArrayBuffer(item.url);zip.folder(suffix).file(`${item.Title}_${item.FileID}` + item.type, data, { binary: true });cache[item.id] = data;} else {throw new Error(`文件${item.fileName}地址错误,下载失败`);}} catch (error) {console.error("文件获取失败", error);}});try {await Promise.all(downloadPromises);const content = await zip.generateAsync({ type: "blob" });FileSaver.saveAs(content, suffix);downloadStatus = truereturn {downloadStatus}} catch (error) {console.error("文件压缩失败", error);}
}
async function getImgArrayBuffer(url) {const response = await fetch(url);if (!response.ok) {throw new Error(`请求失败: ${response.status}`);}return await response.blob();
}

相关文章:

  • Gitee Reward让开源作者不再为爱发电
  • 数组练习 Leetcode 566.重塑矩阵
  • Pytest插件pytest-django让Django测试更高效
  • Spring data都包含哪些内容
  • 100天精通Python(实用脚本篇)——第113天:基于Tesseract-OCR实现OCR图片文字识别实战
  • 蓝桥杯官网填空题(海盗与金币)
  • 【C++】类和对象
  • MyBatis 的XML实现方法(JAVA)
  • Android 基础技术——addView 流程
  • vue+elenemt分页+springboot
  • 幻读是什么,用什么隔离级别可以防止幻读?
  • 解决Windows下VSCode控制台乱码问题
  • 一文了解GeoTrust SSL证书
  • Win10/11中VMware Workstation设置网络桥接模式
  • 【Linux】基本指令收尾
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • 30天自制操作系统-2
  • AngularJS指令开发(1)——参数详解
  • Java比较器对数组,集合排序
  • Laravel Telescope:优雅的应用调试工具
  • Mybatis初体验
  • Mysql优化
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • python 学习笔记 - Queue Pipes,进程间通讯
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • ViewService——一种保证客户端与服务端同步的方法
  • 测试开发系类之接口自动化测试
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 通过几道题目学习二叉搜索树
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 一个SAP顾问在美国的这些年
  • 异步
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • #图像处理
  • (2)MFC+openGL单文档框架glFrame
  • (33)STM32——485实验笔记
  • (9)STL算法之逆转旋转
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (四)汇编语言——简单程序
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .net CHARTING图表控件下载地址
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .net 验证控件和javaScript的冲突问题