1、文件名中文乱码问题
DiskFileItemFactory fileFactory = new DiskFileItemFactory();ServletFileUpload upload = new ServletFileUpload(fileFactory);
upload.setHeaderEncoding("UTF-8");
2、文件上传保存路径:为了减少一个文件夹下面的文件的数量,需要将上传的文件保存在不同的目录
下面的代码根据上传文件的文件名的hashcode生成二级目录,其中一级目录最多有16个子目录,每个目录下最多也有16个子目录
//根据上传文件的文件名的hashcode生成2级目录
public String makeSavePath(String filename, String indexPath){
int hashcode = filename.hashCode();
int dir1 = hashcode & 0xf; //取文件名hashcode的低四位
int dir2 = (hashcode&0xf0)>>4; //取文件名hashcode的5-8位
System.out.println(dir1==dir2);
String path = indexPath + "\\" + dir1 +"\\" +dir2;
File file = new File(path);
if(!file.exists()){
file.mkdirs();
}
return path;
}