100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > js打包文件生成zip

js打包文件生成zip

时间:2024-02-19 17:34:29

相关推荐

js打包文件生成zip

使用npm i jszip、npm i file-saver、npm i axios安装插件

1、下载文件流:

import JSZip from 'jszip'import FileSaver from 'file-saver'import axios from 'axios'const getFile = url => {return new Promise(async (resolve, reject) => {const obj = {method: 'get',url,responseType: 'arraybuffer'}try {const data = await axios(obj)resolve(data.data)} catch (error) {reject(error.toString())}})}

2、打包成zip进行下载:

const data = [] // 文件路径数组const zip = new JSZip()const cache = {}const promises = []this.isDowning = truedata.forEach((item, index) => {const promise = getFile(item).then(data => {const file_name = `文件-${index + 1}` // 获取文件名zip.file(file_name, data, { binary: true }) // 逐个添加文件cache[file_name] = dataconsole.log(cache)})promises.push(promise)})Promise.all(promises).then(() => {zip.generateAsync({ type: 'blob' }).then(content => {console.log(content)// 生成二进制流FileSaver.saveAs(content, '文件下载.zip') // 利用file-saver保存文件 自定义文件名this.isDowning = false})})

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。