js如何将本地文件夹 压缩 然后上传到服务器。
公司做一项目,需要将用户本地的文件夹进行压缩然后传给后端,请问能否用js实现。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
公司做一项目,需要将用户本地的文件夹进行压缩然后传给后端,请问能否用js实现。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(8)
想多了吧
纯js在单纯的浏览器环境中是不可能这样做的。
其实这个最好的办法是让用户自行压缩,然后上传,这个就比较常见啦。
想多了吧
你这里的用户,指的是通过浏览器访问你们网站的用户吗?
如果没有理解错误的话,根本不可能!
如果你都能不经过用户同意,直接上传用户本地文件了,那谁还敢用浏览器上网!
除非用户用的是你自家开发的浏览器!!!
——————————
貌似理解错了问题,你问的是在用户主动上传的情况下,怎么压缩。
那应该也无法直接在前端压缩,浏览器应该不直接提供这种api吧。
上面用户提到的 jszip,确实不错的插件,学习了!
jszip
确实可以,拿到file
转blob
让jszip
转换成zip
。这是一个下载的例子,上传不会有什么区别。
https://codepen.io/a631807682...
你可以试一下jszip。
npm install jszip
一般都是后端压缩文件夹
首先,上传用js是可以的,FormData(),压缩建议不要用js在线压缩,即便是可以的也不要,原因有下
一 js是单进程的,你压缩吃内存,你得让用户等很久
二 一般你上传的就是.rar .zip压缩完的,这样要让用户自压缩完上传,因为如果上传一个 shell,或者其他脚本文件,用户是不是相当于自己上传了一个后门呢,随时可以操作你的服务器?
三、现在基本上上传到各类云,比如七牛,然后返回的是云里面的地址,这个是正确的做法