公司做一项目,需要将用户本地的文件夹进行压缩然后传给后端,请问能否用js实现。
首先,上传用js是可以的,FormData(),压缩建议不要用js在线压缩,即便是可以的也不要,原因有下
一 js是单进程的,你压缩吃内存,你得让用户等很久
二 一般你上传的就是.rar .zip压缩完的,这样要让用户自压缩完上传,因为如果上传一个 shell,或者其他脚本文件,用户是不是相当于自己上传了一个后门呢,随时可以操作你的服务器?
三、现在基本上上传到各类云,比如七牛,然后返回的是云里面的地址,这个是正确的做法
你这里的用户,指的是通过浏览器访问你们网站的用户吗?
如果没有理解错误的话,根本不可能!
如果你都能不经过用户同意,直接上传用户本地文件了,那谁还敢用浏览器上网!
除非用户用的是你自家开发的浏览器!!!
——————————
貌似理解错了问题,你问的是在用户主动上传的情况下,怎么压缩。
那应该也无法直接在前端压缩,浏览器应该不直接提供这种api吧。
上面用户提到的 jszip,确实不错的插件,学习了!
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
4 回答2.4k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
jszip
确实可以,拿到file
转blob
让jszip
转换成zip
。这是一个下载的例子,上传不会有什么区别。
https://codepen.io/a631807682...