对表单的要求
1.method必须要是post
2.enctype = "multipart/form-data"
3.<input type = "file" name="xxx"/>
对servlet的要求
request.getParameter("xxx");一旦表单中的enctype设定为multipart/form-data,返回的便是null
request.getInputStream(); 返回的是ServletInputStream,包含整个请求的
上传文件需要考虑的问题
1.文件的大小
单个文件的大小限制
整体请求所有数据大小限制
2.如何保存文件
保存到WEB-INF下
3.上传文件的文件名称不能一致
使用uuid
4.文件打散:指将文件保存到不同的目录下
分类:
首字符打散:使用文件的首字母作为目录名称
时间打散:使用当前时间作为目录
哈希打散:
1>通过文件名得到哈希值 (int类型)
2>将哈希值转化为十六进制
3>获取十六进制的前两位来生成目录,目录为两层
5.缓存大小和临时目录
DiskFileItemFactory(int sizeThreshokd,File repository)
依赖包