package com.gyarmy.upload; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintWriter; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileItemFactory; import org.apache.commons.fileupload.FileUpload; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; public class UploadServlet extends HttpServlet { /** * The doGet method of the servlet. <br> * * This method is called when a form has its tag value method equals to get. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //测试文件上传的处理 try { DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload parser = new ServletFileUpload(factory); List<FileItem> list = parser.parseRequest(request); //处理上传文件 for (FileItem fileItem : list) { if(fileItem.isFormField()) { //表单数据 String fieldName = fileItem.getFieldName(); String value = fileItem.getString(); System.out.println(fieldName+"="+value); }else{ //上传的二进制数据 String filename = fileItem.getName(); InputStream in = fileItem.getInputStream(); OutputStream out = new FileOutputStream("h:\\"+filename); byte[] buf= new byte[1024]; int len = 0; while((len = in.read(buf))>0){ out.write(buf, 0, len); } in.close(); out.close(); } } } catch (FileUploadException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * The doPost method of the servlet. <br> * * This method is called when a form has its tag value method equals to post. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); } }
0则评论给“上传文件的简单测试”