利用fileupload jar包实现文件上传的一个例子

  1. import java.io.File;   
  2. import java.io.IOException;   
  3. import java.util.List;   
  4.   
  5.   
  6. import javax.servlet.ServletException;   
  7. import javax.servlet.http.HttpServlet;   
  8. import javax.servlet.http.HttpServletRequest;   
  9. import javax.servlet.http.HttpServletResponse;   
  10.   
  11.   
  12. import org.apache.commons.fileupload.FileItem;   
  13. import org.apache.commons.fileupload.disk.DiskFileItemFactory;   
  14. import org.apache.commons.fileupload.servlet.ServletFileUpload;   
  15.   
  16.   
  17. public class fileUploadServlet extends HttpServlet {   
  18.   
  19.   
  20. public void doGet(HttpServletRequest request, HttpServletResponse response)   
  21. throws ServletException, IOException {   
  22.   
  23.   
  24. }   
  25.   
  26.   
  27. public void doPost(HttpServletRequest request, HttpServletResponse response)   
  28. throws ServletException, IOException {   
  29. request.setCharacterEncoding("GBK");//解决从页面提交过来的乱码问题   
  30. DiskFileItemFactory factory = new DiskFileItemFactory();   
  31.       String path = request.getRealPath("/upload");//得到要保存上传文件的目录的绝对路径。   
  32. System.out.println("path:"+ path);   
  33. factory.setRepository(new File(path));   
  34. factory.setSizeThreshold(1024 * 1024);   
  35. ServletFileUpload upload=new ServletFileUpload(factory);   
  36. try{   
  37. //这个方法是从请求中得到所有的FileItem。   
  38. List<FileItem> list=upload.parseRequest(request);   
  39. for(FileItem item : list){   
  40. String name=item.getFieldName();   
  41. if(item.isFormField()){   
  42. String value=item.getString();   
  43. System.out.println("name: "+name+" value: "+value);   
  44. request.setAttribute(name, value);   
  45. }   
  46. else{   
  47. String value=item.getName();   
  48. int start=value.lastIndexOf("\\");  
  49. String fileName=value.substring(start+1);  
  50. System.out.println("name: "+name+" value: "+fileName);  
  51. request.setAttribute(name, fileName);  
  52. item.write(new File(path,fileName));  
  53. }  
  54. }  
  55. }  
  56. catch(Exception ex){  
  57. ex.printStackTrace();  
  58. }  
  59. request.getRequestDispatcher("index.jsp").forward(request, response);   
  60. }   
  61.   
  62.   
  63. }   
  1. da shang
    donate-alipay
               donate-weixin weixinpay

发表评论↓↓