在系统中上传文件时,需要支持多文件和文件夹上传,并且需要在文件上传时需要将多文件压缩成zip包,下载的时候,直接下载zip包
听到这个需求,我的第一反应就是js应该没有强大吧,因为压缩和访问文件夹,涉及到了文件系统的读取和修改...主要用到的库是 jszip
则 则这里简单对jszip做下简单介绍,更详细的功能和api请移步官网.
jszip是是一个创建,读取和写入.zip文件的js库, api优化,简单
浏览器支持
实现思路如下...:
1:用户选中文件或文件夹后,获取文件对象,
2:遍历获取的文件对象 放入实例化的zip对象中
3:使用generateAsync()方法生成文件, 通过formdata提交到服务端
代码如下:
此案例支持拖拽上传多个文件..., 支持选择多个文件,选择单个文件夹 此外可以使用 file-saver库的saveAs对zip文件包保存到本地
<img alt