packagezck.servlet;importjava.io.File;importjava.io.IOException;importjava.io.InputStream;importjava.util.List;importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.apache.commons.fileupload.FileItem;importorg.apache.commons.fileupload.FileItemFactory;importorg.apache.commons.fileupload.FileUploadException;importorg.apache.commons.fileupload.disk.DiskFileItemFactory;importorg.apache.commons.fileupload.servlet.ServletFileUpload;/*** Servlet implementation class FileUploadTest*/@WebServlet("/FileUploadTest")public class FileUploadTest extendsHttpServlet {private static final long serialVersionUID = 1L;/***@seeHttpServlet#HttpServlet()*/
publicFileUploadTest() {super();//TODO Auto-generated constructor stub
}/***@seeHttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {//创建文件上传工厂类
DiskFileItemFactory fileItemFactory = newDiskFileItemFactory();//创建文件上传核心类
ServletFileUpload upload = newServletFileUpload(fileItemFactory);
upload.setFileSizeMax(30*1024*1024);//设置单个文件最大值30M
upload.setSizeMax(50*1024*1024);//最多50个文件//判断表单是否是文件上传表单
if(upload.isMultipartContent(request)) {//把请求数据转化为FileItem对象集合
try{
List list =upload.parseRequest(request);//遍历得到每一个数据项
for(FileItem fileItem :list) {//判断普通项,还是文件。
if(fileItem.isFormField()) {//普通表单项
String fieldName =fileItem.getFieldName();//表单元素名称
String content =fileItem.getString();//值
System.out.print(fieldName+"\n"+content+"\n\n");
}else{//文件上传表单项
String name =fileItem.getName();//获取文件名//上传文件目录路径
String basePath = ("D:\\software\\eclipse\\workplace2019-1\\UploadFiles\\WebContent\\upload\\");//新建文件
File file = newFile(basePath,name);
fileItem.write(file);
fileItem.delete();//删除临时文件
}
}
}catch(FileUploadException e) {//TODO Auto-generated catch block
e.printStackTrace();
}catch(Exception e) {//TODO Auto-generated catch block
e.printStackTrace();
}
}else{
System.out.print("不是文件上传表单,不处理");
}
}/***@seeHttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {//TODO Auto-generated method stub
doGet(request, response);
}
}