我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用。

首先我们需要了解的是上传文件三要素:

1.表单提交方式:post (get方式提交有大小限制,post没有)

2.表单的enctype属性:必须设置为multipart/form-data.

3.表单必须有文件上传项:file,且文件项需要给定name值

上传文件夹需要增加一个属性webkitdirectory,像这样:

<input name="fileFolder" type="file"  webkitdirectory>

js中可以判断文件夹中文件数量及文件夹大小是否符合要求,不符合要求不能向后台提交:

前台HTML模板

javaweb上传文件夹_java 上传文件夹

选择文件,选择文件夹,粘贴文件和文件夹的逻辑

javaweb上传文件夹_java上传大文件解决方案_02 

后台在接收文件夹时不同之处在需要用MultipartHttpServletRequest

javaweb上传文件夹_java 上传文件夹_03

 

server端的包和类

javaweb上传文件夹_java 上传文件夹_04 

 

f_post.jsp页面的处理逻辑

javaweb上传文件夹_java 实现上传文件夹_05 

 

生成文件名称的逻辑

javaweb上传文件夹_java 服务器上传和下载文件_06 

 

以下是service层做的处理:

整体模块划分如下:

javaweb上传文件夹_java 服务器上传和下载文件_07

其中数据类实体逻辑处理如下

javaweb上传文件夹_java上传大文件解决方案_08

后台数据库中的逻辑基本上都用到了上面的实体类

文件数据表操作类如下

javaweb上传文件夹_java 上传文件夹_09

实现后的整体效果如下

javaweb上传文件夹_java 实现上传文件夹_10

文件夹上传完后的效果

javaweb上传文件夹_java上传视频文件_11

服务器保存的文件夹数据,而且层级结构与本地客户端是一致的。这在OA系统中,或者网盘系统中使用时是非常有用的

javaweb上传文件夹_java上传视频文件_12

后端代码逻辑大部分是相同的,目前能够支持MySQL,Oracle,SQL。