导入包:
commons-fileupload-1.3.1.jar
commons-io-2.4.jar
commons-fileupload依赖于commons-io,commons-io-2.4必须是JDK6+;
下载地址:
http://commons.apache.org/proper/commons-fileupload/download_fileupload.cgi
http://commons.apache.org/proper/commons-io/download_io.cgi
index.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body> <h1>Hello World!</h1> <form name="myform" action="FileUploadTestServlet" method="post" enctype="multipart/form-data"> 姓名: <br> <input type="text" name="name" size="15"><br> 附件1:<br> <input type="file" name="myfile1"><br> 附件2:<br> <input type="file" name="myfile2"><br> <br> <input type="submit" name="submit" value="Commit"> </form> </body> </html>
FileUploadTestServlet.java
import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.util.Iterator; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; 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.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; /** * * @author y */ public class FileUploadTestServlet extends HttpServlet { protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); if(!ServletFileUpload.isMultipartContent(request)){ return; } FileItemFactory fileFactory = new DiskFileItemFactory(); ServletFileUpload fileUpload = new ServletFileUpload(fileFactory); try { List items = fileUpload.parseRequest(request); Iterator iter = items.iterator(); while(iter.hasNext()){ FileItem item = (FileItem)iter.next(); if(item.isFormField()){ out.print("<p>"+item.getFieldName()+":"+new String(item.getString().getBytes("ISO8859-1"), "utf-8")+"</p>"); }else{ String path = "/home/y/my_temp/upload"+File.separator+item.getName(); File disk = new File(path); item.write(disk); out.print("<p>文件保存到:"+path+"</p>"); } } } catch (FileUploadException ex) { Logger.getLogger(FileUploadTestServlet.class.getName()).log(Level.SEVERE, null, ex); } catch (Exception ex) { Logger.getLogger(FileUploadTestServlet.class.getName()).log(Level.SEVERE, null, ex); }finally{ out.close(); } } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } }