public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("=================文件上传来了=================");
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
// 若果是的话
if (isMultipart) {
/** 为该请求创建一个DiskFileItemFactory对象,通过它来解析请求。执行解析后,所有的表单项目都保存在一个List中。* */
try {
DiskFileItemFactory factory = new DiskFileItemFactory();
File tempPathFile = new File("g:/file");
File per = new File("g:/file");
factory.setSizeThreshold(4048); // 设置缓冲区大小,这里是4kb
factory.setRepository(tempPathFile);// 设置缓冲区目录
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setHeaderEncoding("UTF-8");// 解决文件乱码问题
upload.setSizeMax(40480000);// 设置最大文件尺寸
List<FileItem> items = upload.parseRequest(request);
// 检查是否符合上传的类型
Iterator<FileItem> itr = items.iterator();// 所有的表单项
// 保存文件
while (itr.hasNext()) {
FileItem item = (FileItem) itr.next();// 循环获得每个表单项
if (!item.isFormField())
{// 如果是文件类型
String name = item.getName();// 获得文件名 包括路径啊
if (name != null&&!"".equals(name))
{
int index=name.indexOf(".");
name=name.substring(index);
name=UUID.randomUUID().toString()+name;
System.out.println("====name:"+name);
File savedFile = new File(per, name);
item.write(savedFile);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
else {
System.out.println("the enctype must be multipart/form-data");
}
System.out.println("============文件上传成功==================");
}
|