js - - - - - 如何批量下载文件

原生js+JSZip实现批量下载并打包zip文件 【代码】原生js+JSZip实现批量下载并打包zip文件。 阅读详情
AI摘要

本文介绍了两种批量下载文件的方法:方案一是逐个下载,通过创建隐藏IFrame实现;方案二是前端打包,利用file-saver和jszip插件。方案一可能因文件大小和并发量影响效率。方案二依赖后端支持。,

1. 思路解析

  • 方案1: 将所有的需要下载的文件集合到一个数组里,遍历下载
  • 方案2: 将所有文件打包下载

2. 方案一:逐个下载

组装数据结构 & 创建标签进行下载

// 组建数据结构
  const downloadFiles = () => {
      const downloadList = fileList.map((item, index) => {
        return {
          name: item.fileName,
          href: "" // 这里组装下载地址
        };
      });
      const triggerDelay = 100;
      const removeDelay = 1000;
      downloadList.forEach((item, index) => {
        createIFrame(item.href, index * triggerDelay, removeDelay);
      });
    };

// 创建标签进行下载
  const createIFrame = (url, triggerDelay, removeDelay) => {
      setTimeout(function() {
        // 动态添加iframe,设置src,然后删除
        const frame = document.createElement("iframe"); //创建标签
        frame.setAttribute("style", "display: none");
        frame.setAttribute("src", url);
        frame.setAttribute("id", "iframeName");
        frame.setAttribute("type", "application/pdf");
        document.body.appendChild(frame);
        setTimeout(function() {
          document.body.removeChild(frame);
        }, removeDelay);
      }, triggerDelay);
    };

注意:

若单个文件过大,标签加载的时间会相应越长;同时下载文件很多,很可能会因操作而漏掉正在加载的文件!!!

2. 方案二: 打包下载

使用file-saver& jszip插件进行前端打包

或者后端同学配合出一个打包后的文件接口直接下载

基于 JSZip 的批量下载文件打包方案 阅读详情

相关推荐

vue+JSZip+FileSaver批量压缩下载文件

需要的功能是批量下载并压缩xlsx文件,后端传给我的数据是下载链接。网络上搜索到的都是用promise解决异步获取文件的问题,但是我使用时候会出现文件错乱互相覆盖(原因是啥我也没研究明白),导致下载的文件名对,文件内容不对的诡异情况,研究过后只能轮询转化,即一次转换文件成功后再重新循环转化。触发downloadBtn方法,就可以下载statementList存放的数据了。首先是依赖包的下载,用到的是JSZip和FileSaver。获取到数据以后拼成可用的数据源,然后调用方法。

mokio233的博客 757

前端js 实现文件(附件)下载、批量下载方法汇总

文件下载在前端系统里面算是个比较常见的功能,尤其是在管理系统里面。本篇文章我记录下前端通过后端返回的文件url 实现文件下载的几种方法,包含批量下载。

二三的博客 6283

Web页面中调用迅雷进行单文件和批量下载

费了老大的劲才将页面调用迅雷客户端批量下载搞定,在此将页面调用迅雷进行单文件下载和批量下载进行一个总结。 批量下载主要参照:http://www.jackyrao.com/archives/425 | Jacky的博客 一、单文件下载 单文件下载已经很容易找到方法,没什么技术含量。 方法一 1.引入迅雷检测及调用的js文件 2.引入迅雷地址转换的js文件

z798083517的博客 1万+

JS 文件上传 下载文件 批量下载

理解 无论是上传还是下载,对前端来说,都是对数据流进行操作。 常见情况包括: 1、前端使用 input type=‘file’ 标签进行文件读取 获取到file对象这种类型的数据流,将其传给接口 2、前端使用html2canvas等插件进行截图,拿到的是生成后保存在内存中base64编码的二进制数据流, 此时需要根据接口的要求转成对应格式的数据在上传保存。 3.后台返回文件地址 前端访问地址进行文件下载 大部分情况下文件上传后台要求的都是formData对象的格式 文件上传案例 data

Beatingworldline的博客 1481

无需Root!安卓模拟器+BurpSuite轻松搞定微信小程序抓包

本文详细介绍了如何在不root安卓设备的情况下,使用安卓模拟器和BurpSuite实现微信小程序抓包。通过夜神模拟器降级安卓版本、配置BurpSuite代理及安装证书等步骤,开发者可以轻松绕过微信的证书绑定,高效抓取小程序数据包。文章还提供了常见问题排查和高阶技巧,帮助开发者提升抓包效率。

weixin_29213655的博客 365

【3d打印】基于Klipper的3d打印远程上位机系统(Qt),klipper源码,通信解析,打印参数设置

基于Klipper的3d打印远程上位机系统(Qt),klipper源码,通信解析,打印参数设置(启庞Kp3s V1)

共享IT之美,共创机器未来 3190

js 批量下载文件

function downloadFiles(){ for(var i=0;i<arr.length;i++){ try{ var elemIF = document.createElement("iframe"); elemIF.src = arr[i]; e...

Carson073的博客 1644

STM32 热敏电阻测量温度

1、硬件 STM32F103C8T6、热敏电阻传感器、OLED。 2、热敏电阻传感器的介绍

weixin_54721788的博客 1万+

前端js实现批量下载文件

前端js实现批量下载文件 文章目录前端js实现批量下载文件前言一、效果展示二、代码实现总结 前言 在表格中对数据列表进行批量操作,涉及到批量下载文件时就用到这里了 一、效果展示 二、代码实现 1.方法封装 html var btn = document.getElementById('download-btn'); 数据 //将要进行多文件下载,以组数的形式存起来 var mp3arr = ["http://www.jq22.com/img/cs/500x500-1.png", "http://

weixin_45439379的博客 2728

公文派2025:免费社区版重大安装更新!

距离上一次更新已经过去了将近一年的时间,今天我们带来了全新的免费2025社区版,该版本也是目前最新的版本,无需授权即可使用所有的功能。

似最初 1963

CloudSat卫星数据高效下载与自动化处理指南

本文详细介绍了CloudSat卫星数据的高效下载与自动化处理方法,包括交互式图形界面和wget批量下载技巧,以及使用Python脚本实现自动化处理和数据质量控制。内容涵盖从数据准备到实战应用的完整流程,特别适合气象研究和气候建模领域的工作者提升工作效率。

weixin_28700411的博客 233

js实现oss批量下载文件_jquery批量下载文件

一、此方法火狐有些版本是不支持的window.location.href = 'https://*****.oss-cn-**.aliyuncs.com/*********';二、为了解决火狐有些版本不支持,可以改成这种方式window.location='https://*****.oss-cn-**.aliyuncs.com/*********';三、该方法IE和火狐都可以,url表示要下载的...

weixin_33817046的博客 478

国科大学习资料--模式识别与机器学习(黄庆明)--2020期末考试题

国科大学习资料–模式识别与机器学习(黄庆明)–2020期末考试题 国科大学习资料–模式识别与机器学习(黄庆明)–2020期末考试题 国科大学习资料–模式识别与机器学习(黄庆明)–2020期末考试题 ============================================================================================================================================================

无名何许人的博客 2601

js 批量下载多个文件

function downloadFile(url){//下载文件方法 const iframe = document.createElement("iframe"); iframe.style.display = "none"; // 防止影响页面 iframe.style.height = 0; // 防止影响页面 iframe.src = url; document.body.appendChild(iframe); // 这一行必须,iframe挂在到dom

qq_40685103的博客 2778

从微服务到 Agent 服务:架构思维的迁移

微服务的概念最早在2014年由Martin Fowler提出,核心是“将单体应用拆分为一组小的服务,每个服务运行在独立的进程中,服务之间采用轻量级的通信机制互相协作,每个服务围绕具体业务构建,并且可以独立部署到生产环境”。单一职责:每个微服务只负责一个业务领域的功能,比如订单服务只处理订单相关的逻辑,用户服务只处理用户相关的逻辑被动响应:微服务是“哑的”,只有收到外部请求的时候才会执行逻辑,本身没有主动决策的能力固定流程:微服务的逻辑是硬编码的,执行流程是提前定义好的,只能按照程序员写的代码处理请求。

AI智能探索者的博客 275

基于 MATLAB 的精馏塔模拟仿真

基于 MATLAB 的精馏塔模拟仿真精馏塔是一种重要的化工设备,其中乙烯精馏塔和醋酸乙烯精馏塔是常见的两种精馏塔。本文基于 MATLAB 软件,给出了针对这两种精馏塔的模拟仿真代码。

与其临渊羡鱼,不如退而结网 903

js 实现多文件批量下载

关于兼容性问题:   <a href="xxx.docx" target='_blank'></a>   下载文件时,这种写法是没有兼容性问题;但是下载图片时,IE 上会出现当前页面直接打开图片的问题,即便是加了 target='_blank'。 2019.8.19 更 单个文件批量下载 方法一:H5 <a> 新特...

weixin_30670925的博客 7931

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

js实现oss批量下载文件_js下载文件到本地各种方法总结

一、此方法火狐有些版本是不支持的window.location.href= 'https://*****.oss-cn-**.aliyuncs.com/*********';二、为了解决火狐有些版本不支持,可以改成这种方式window.location='https://*****.oss-cn-**.aliyuncs.com/*********';三、该方法IE和火狐都可以,url表示要下载的文...

weixin_39864738的博客 2052

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

js实现oss批量下载文件_批量下载文件示例

一、此方法火狐有些版本是不支持的window.location.href = 'https://*****.oss-cn-**.aliyuncs.com/*********';二、为了解决火狐有些版本不支持,可以改成这种方式window.location='https://*****.oss-cn-**.aliyuncs.com/*********';三、该方法IE和火狐都可以,url表示要下载的...

weixin_39773817的博客 566

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

详解JS实现单个或多个文件批量下载的方法

JavaScript是一种基于原型的语言,它意味着它不使用类来定义对象,而是使用原型来定义对象和它们的属性和方法。这种原型继承模式是JavaScript的一个独特特征,使其与其他基于类的语言(如Java和C++)有所不同。JavaScript在Web开发中扮演着非常重要的角色。在Web应用程序中,它可以用来验证表单、处理数据、响应用户交互等。JavaScript可以与HTML和CSS结合使用,创建交互式的、动态的Web页面。

qq_38334677的博客 3679

js批量下载文件

关于兼容性问题:   <a href="xxx.docx" target='_blank'></a>   下载文件时,这种写法是没有兼容性问题;但是下载图片时,IE 上会出现当前页面直接打开图片的问题,即便是加了 target='_blank'。 单个文件批量下载 方法一:H5 <a> 新特性   HTML 5 里面为 <a> 标签添加了一个 do...

Mr_Zang666的博客 1978

js实现oss批量下载文件_JavaScript 实现文件下载并重命名

问题文件保存在 OSS,为了避免文件重名覆盖,于是上传文件采用了 UUID 命名(嗯,就是一长串ABCD那种O_O`)但是,下载的时候:这个是啥...你上传的配置文件啊我明明传的是 xxx.txt,怎么变成 F8581FA0D-94D0-4DE4-98B0-F3416AEF0BB9.txt 了,什么鬼那个是 OSS 为了...我不听我不听!!哦...那我改改坑网上搜呗,HTML5 中 a 标签提供...

weixin_34297395的博客 759

原生JavaScript批量下载文件压缩包

想要实现批量下载压缩包需要有以下三个js文件对应JSZipUtils文件地址:jszip-utils/jszip-utils.js at master · Stuk/jszip-utils · GitHub 对应JSZip文件地址:jszip/jszip.js at main · Stuk/jszip · GitHub对应FileSaver文件地址:jszip/vendor at main · Stuk/jszip · GitHub对应JSZip官网:How to use JSZip把下方代码包裹在一个点击

陈新科的博客 1700

js批量下载文件,导出成zip

js批量下载文件

c347087870的博客 3468
上一篇: elementUi - - - - table 勾选功能 & 禁止勾选
下一篇: antd-vue - - - - - select自定义渲染[封装select组件]
Dark_programmer
博客等级 码龄7年 9073粉丝 307原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值