importjava.io.File;importjava.io.IOException;importjava.util.Iterator;importjava.util.List;importjavax.servlet.ServletConfig;importjavax.servlet.ServletContext;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.apache.commons.fileupload.FileItem;importorg.apache.commons.fileupload.disk.DiskFileItemFactory;importorg.apache.commons.fileupload.servlet.ServletFileUpload;
@SuppressWarnings("serial")publicclassUploaderextendsHttpServlet {privateServletContext sc;privateString uploadDir="downloads";
@Overridepublicvoidinit(ServletConfig config) {
sc=config.getServletContext();
}
@OverridepublicvoiddoGet(HttpServletRequest request, HttpServletResponse response)throwsIOException, ServletException {
doPost(request, response);
}
@OverridepublicvoiddoPost(HttpServletRequest request, HttpServletResponse response)throwsIOException, ServletException {
request.setCharacterEncoding("UTF-8");//防止中文乱码DiskFileItemFactory factory=newDiskFileItemFactory();
ServletFileUpload upload=newServletFileUpload(factory);try{
List items=upload.parseRequest(request);
Iterator itr=items.iterator();while(itr.hasNext()) {
FileItem item=(FileItem) itr.next();if(item.isFormField()) {
System.out.println("表单参数名:"+item.getFieldName()+",表单参数值:"+item.getString("UTF-8"));
}else{if(item.getName()!=null&&!item.getName().equals("")) {
System.out.println("上传文件的大小:"+item.getSize());
System.out.println("文件的类型:"+item.getContentType());
System.out.println("上传文件的名称:"+item.getName());//返回上传文件在客户端的完整路径名称File file=newFile(sc.getRealPath("/")+File.separatorChar+uploadDir+File.separatorChar+item.getName());
item.write(file);
}else{
response.getWriter().println("没有选择文件");
}
}
}
}catch(Exception e) {
e.printStackTrace();
response.getWriter().println("上传文件失败");
}
response.getWriter().println("Ok");
}
}