jszip在线解压压缩文件

接到新需求:下载的文件是一个zip压缩文件,分两种情况,1.压缩文件内是一个需要的文件2.文件内又是一个zip,需要解压缩两次。

首先下载jszip和jszip-utils两个js文件,在页面中引入,这就不用多说了,然后封装解压的方法

<--
 blob是下载的blob类型文件,一定要确定这个类型。
 num是压缩文件内的文件个数
 isTrue就是是否需要二次解压
-->
function useZip(blob,num,isTrue){
//因为压缩文件内一般有多个页文件,所以需要遍历有几个文件,获取文件名,分别解压缩
	for(let i=0; i<num; i++){
		JSZip.loadAsync(blob).then((zip)=>{
			var nameArr = [];
			for(var key in zip.files){
				nameArr.push(key)
			}
			if(isTrue == true){
			//每个文件名都解压缩,返回blob类型二次解压
				return zip.file(nameArr[i].async('blob'));
			}else{
				return zip.file(nameArr[i].async('string'));
			}
		}).then((response)=>{
			if(isTrue == true) {
				let blob1 = new Blob([response],{type:'text/plain'});
				JSZip.loadAsync(blob1).then((zip)=>{
					return zip.file(Object.keys(zip.files)[0]).async('string');
				}).then((response)=>{
					console,log(response)
				})
			}else{
				console.log(response);
			}
		})
	}
}

补充一下,blob类型的文件,如果相当做src作为图片展示,那么做如下操作

let src = URL.createObjectURL(blob);
let img = document.createElement('img')
img.src = src
document.body.appendChild(img)
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值