js+html+springboot实现文件夹上传遇到的坑及其解决方案!

本文介绍了在B/S架构下实现文件夹上传时遇到的五个问题,包括H5获取文件路径问题、同名文件夹处理、创建目录的前后台选择、请求顺序保证以及遍历文件夹的限制。针对这些问题,提供了详细的解决方案,如按完整路径判断目录创建、前台判断同名文件夹、后台批量创建目录、使用onload保证请求顺序和分类处理文件上传。
摘要由CSDN通过智能技术生成

最近由于项目需要开始在之前文件分片上传文件的基础上实现文件夹的上传。在开发B/S架构的文件夹上传时遇到了一下问题,并给出我们的解决方案以供参考。如您有更好的方案也欢迎及时的交流。

问题一:H5获取文件路径之后只有文件完整的相对路径串,不能直接获取他的父目录以及子目录?
首先,简单示范一下H5中获取文件完整相对路径的方法,获取到的路径形式一般为:test/a/b/c.txt的形式,如下:

var files = event.target.files;
var i=0;
var fullFilePath = files[i].webkitRelativePath;// 包含文件名的完整路径

问题分析:
由于不能像windows下可以直接使用isDirectory或者isfile之类的函数,所以只能取出文件的完整路径,然后根据已经创建了的路径列表来判断该级目录是否需要创建,而不能按照目录层级一级一级的去上传。
解决方案:
取出文件的完整目录串,拆分之后逐级判断该级是否需要创建,问了防止存在目录名称相同的情况,可以使用取完整的目录串的形式判断,即:判断test/a/b/是否存在时,需要先判断test若创建再判断test/a已经创建,再判断test/a/b已经创建。或者使用目录对应的ID串的形式判断一个目录是否已经创建。

问题二、前台是否允许存在同名文件夹?
可能在本地的C:\和D:\下都存在一个叫做test的目录,但是内容不同,这时需要允许上传这两个同名文件夹。所以这种情况必须要实现前台允许同名目录结构在同一父目录下存在的情

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coding13

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值