zip文件上传(element-ui+jszip)

前言

        需求大概是需要上传一个.zip文件,需要分析文件是否为空文件夹,以及文件夹里的文件是否符合标准,这块是想让前端这边做拦截,不符合要求就上传失败

实现方法

1.下包

npm i jszip

2.在需要的地方引入(命名可自定义)

import JSZip from 'jszip'

3.找到文件上传前的钩子

4.创建实例,并将文件传入构造函数中

let new_zip = new JSZip() // 获取实列
const resfile= await new_zip.loadAsync(file) // 读取文件,拿到返回值
console.log('我看看JSZip面的参数',resfile)

返回值如下

5.上传文件后会触发这里的钩子(可以根据返回值去做处理)

需要注意的是:这里我将校验封装成prosime所以钩子中在返回值应该处理一下为返回被reject的的promise

判断方法:

我看到网上有用dir判断是否为空文件的,但是我自己试了下,感觉这个dir参数是判断是否是文件夹的,和是否为空文件夹无关(个人见解)

最终我还是选择用实例返回的files的长度判断是否为空文件(因为如果有其它文件,files里面都会有返回到最深层级,有点像vue-router里面的getRouter()的返回值)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值