首页 > 其他分享 >vue3 将文件集合下载后导出zip文件

vue3 将文件集合下载后导出zip文件

时间:2023-09-22 14:24:13浏览次数:63  
标签:文件 const promiess zip item vue3 xmlhttp

// 注意:文件的url一定是服务器上的地址 如http:xxxx

// 先下载
npm i jszip file-saver

// 封装
import JSZip from 'jszip'
import FileSaver from 'file-saver'
const getFile = (url) => {
  return new Promise((resolve, reject) => {
    // 通过请求获取文件blob格式
    let xmlhttp = new XMLHttpRequest()
    xmlhttp.open('GET', url, true)
    xmlhttp.responseType = 'blob'
    xmlhttp.onload = () => {
      if (xmlhttp.status == 200) {
        resolve(xmlhttp.response)
      } else {
        reject(xmlhttp.status)
      }
    }
    xmlhttp.send()
  })
}
export const downloadZip = (fileList) => {
  const zip = new JSZip()
  const promiess = []
  fileList.forEach((item) => {
    const reqList = getFile(item.filePath, item.fileName).then((res) => {
      zip.file(item.fileName, res, { binary: true })
    })
    promiess.push(reqList)
  })
  Promise.all(promiess).then(() => {
    zip
      .generateAsync({ type: 'blob' })
      .then((content) => {
        FileSaver.saveAs(content, '附件') // content 内容  附件:zip文件名称
      })
      .catch(() => {
        window.$message.error('文件压缩失败')
      })
  })
}


// 在页面中使用
downloadZip(fileList)

标签:文件,const,promiess,zip,item,vue3,xmlhttp
From: https://www.cnblogs.com/demoTimes/p/17722202.html

相关文章

  • 小米云原生文件存储平台化实践:支撑 AI 训练、大模型、容器平台多项业务
    小米作为全球知名的科技巨头公司,已经在数百款产品中广泛应用了AI技术,这些产品包括手机、电视、智能音箱、儿童手表和翻译机等。这些AI应用主要都是通过小米的深度学习训练平台完成的。在训练平台的存储方案中,小米曾尝试了多种不同的存储方式,包括Ceph+NFS、HDFS和对象存储挂......
  • 利用Python从现有的Excel表格中复制指定列生成新的Excel文件
    importxlrdimportxlwtimportpatternsaspatternsfile1='通讯专线汇总统计表.xls'file2='附件:历史存量邮电费明细.xls'data1=xlrd.open_workbook(file1)table1=data1.sheet_by_index(0)nrows1=table1.nrowszx_infos=[]#读取“通讯专线汇总统计表.xls”文件中......
  • C# 指定物理目录下载文件,Response.End导致“正在中止线程”异常的问题
    https://blog.51cto.com/u_15116285/5964873https://blog.csdn.net/phphot/article/details/4211921https://www.codenong.com/20988445/https://www.dbmng.com/art-2500.html现象:通过浏览器下载pdf文件,下载可以正常下载,可是却会抛出异常,提示正在中止线程。查了资料,能看懂的......
  • Windows和Linux中的库、对象、可执行文件后缀名
    中国软件工程师面试常问的问题Justa"Scientific"(Interview)ExplanationforInterviewProblemsforSoftwareEngineers(mostChineseInterviews)Windows和Linux中的库、对象、可执行文件后缀名library,object,executablefilessuffixnameinWindowsandLinuxL......
  • vue3+elementplus 去除小数点后多余的0公用函数
    vue3+elementplus去除小数点后多余的0公用函数exportfunctionremoveTrailingZeros(value){//尝试将值转换为数字constnumericValue=parseFloat(value);//检查是否成功转换为数字if(!isNaN(numericValue)&&typeofnumericValue==='number'){//......
  • 投标文件编写经验--陪标
    1、拷贝(目标文件-源文件)尽量标题序号对应,调格式不好调2、样式:粘贴(只粘贴文本),再应用样式调格式3、*偏离项:如果内容无相关项,可以把原文件拷贝过来,放到相关内容下盖帽展示。......
  • 04_拖动文件渲染在页面中
      新建一个文件夹,跟之前一样,在Vscode终端里输入yarncreateelectron-appDrag。  在index.html添加以下代码,JS文件夹和render.js都是新创建的:  首先,css文件一般和html结合使用,相当于html是结构,而css是样式。在index.css添加以下代码:  在index.js......
  • 已解决pandas无法读取中文文件的问题
    已解决pandas无法读取中文文件的问题文章目录报错问题解决方法声明报错问题之前在工作中遇到过这个坑,记录一下问题以及解决方法,不一定针对所有情况都能用,但是可以供大家参考。问题描述如下:pandas无法读取中文文件的问题文件有问题或者环境编码有问题!解决方法data=open(r'dataset......
  • windows中实现本地scp命令向服务器远程免密传输文件
     先安装git,官网:https://git-scm.com/  001、打开git,生成本地密钥文件ssh-keygen##然后全部回车  002、查看密钥文件 ......
  • vue3 父子组件通信 setup
    父传子father<template><div><h2>父传子Father</h2><!--<buttonclass="bg-green-300roundedp-1">父按钮</button>--><divclass="w-[200px]h-[200px]bg-violet-200">......