文件上传
可参考 https://blog.csdn.net/u014785687/article/details/73863964
// 判断前台的form是否有 mutipart属性
if (isMultipart) {
//1、创建DiskFileItemFactory对象,设置缓冲区大小和临时文件目录。
DiskFileItemFactory factory = new DiskFileItemFactory();
//设置工厂的内存缓冲区大小,默认是10K
// factory.setSizeThreshold(1024*1024);
//设置工厂的临时文件目录
//factory.setRepository(new File("D:\\YOHO\\"));
//2、创建ServletFileUpload对象,并设置上传文件的大小限制
ServletFileUpload upload = new ServletFileUpload(factory);
//控制上传单个文件的大小(单位B)
upload.setSizeMax(20480);
//3、解析request对象中的所有请求字段(文字和文件)
List<FileItem> items = upload.parseRequest(request);
// 4、遍历items中的数据
Iterator<FileItem> iter = items.iterator();
while (iter.hasNext()) {
FileItem item = iter.next();
//获得属性名
String itemName = item.getFieldName();
int sno = -1;
String sname = null;
//4.1、 为普通表单字段,则调用getFieldName、getString方法得到字段名和字段值。
if (item.isFormField()) {
if (itemName.equals("sno")) {
sno = Integer.parseInt(item.getString("UTF-8"));
} else if (itemName.equals("sname")) {
sname = item.getString("UTF-8");
} else {
System.out.println("其他字段xxx.....");
}
}
//4.2、上传文件
else {
String fileName = item.getName();
//设置上传路径
String path = "D:\\study\\upload";
File file = new File(path, fileName);
// 上传
item.write(file);
System.out.println(fileName + "上传成功!");
return;
}
}
}