`
mqzsweet
  • 浏览: 135147 次
  • 性别: Icon_minigender_1
  • 来自: 江苏
社区版块
存档分类
最新评论

利用commons-fileupload上传组件上传文件(二)

    博客分类:
  • JSP
阅读更多

FileUpload.java  上传处理页面(Servlet) 

 

java 代码
  1. package it;   
  2.   
  3. import java.io.*;   
  4. import javax.servlet.*;   
  5. import javax.servlet.http.*;   
  6. import java.util.*;   
  7. import java.util.regex.*;   
  8. import org.apache.commons.fileupload.*;   
  9. import org.apache.commons.fileupload.disk.*;   
  10. import org.apache.commons.fileupload.servlet.*;   
  11.   
  12.   
  13. public class FileUpload extends HttpServlet {   
  14.  private String uploadPath = "d:\\addnetFile\\";  
  15.  private File tempPath = new File("c:\\temp\\");  
  16.  
  17.  public void destroy() {  
  18.   super.destroy(); // Just puts "destroy" string in log  
  19.   // Put your code here  
  20.  }  
  21.  
  22.  /**  
  23.   * The doGet method of the servlet. <br>  
  24.   *  
  25.   * This method is called when a form has its tag value method equals to get.  
  26.   *   
  27.   * @param request the request send by the client to the server  
  28.   * @param response the response send by the server to the client  
  29.   * @throws ServletException if an error occurred  
  30.   * @throws IOException if an error occurred  
  31.   */  
  32.  public void doGet(HttpServletRequest request, HttpServletResponse response)  
  33.    throws ServletException, IOException {  
  34.   response.setContentType("text/html;charset=gb2312");  
  35.   PrintWriter out = response.getWriter();  
  36.     
  37.   DiskFileItemFactory factory = new DiskFileItemFactory();  
  38.     
  39.   factory.setSizeThreshold(1048576);  
  40.   factory.setRepository(tempPath);  
  41.     
  42.   ServletFileUpload upload = new ServletFileUpload(factory);  
  43.     
  44.   upload.setSizeMax(1073741824);  
  45.     
  46.   List fileitems = null;  
  47.     
  48.     
  49.   try{  
  50.    fileitems =upload.parseRequest(request);  
  51.    Iterator iter = fileitems.iterator();  
  52.      
  53.      
  54.    String regExp = ".+\\\\(.+)";  
  55.    String[] errorType = {".exe",".com",".cgi",".asp"};  
  56.      
  57.    Pattern p = Pattern.compile(regExp);  
  58.      
  59.    while(iter.hasNext()){  
  60.     FileItem item = (FileItem)iter.next();  
  61.       
  62.     if(!item.isFormField()){  
  63.      String name = item.getName();  
  64.      long size = item.getSize();  
  65.        
  66.  
  67.      if((name == null||"".equals(name))&&size == 0)  
  68.       continue;  
  69.      Matcher m = p.matcher(name);  
  70.      boolean result = m.find();  
  71.        
  72.        
  73.      if(result){  
  74.       for(int temp = 0;temp<errorType.length;temp++){  
  75.        if(m.group(1).endsWith(errorType[temp])){  
  76.         throw new IOException(name +"wrong type");  
  77.        }  
  78.       }  
  79.         
  80.       try{  
  81.        item.write(new File(uploadPath,m.group(1)));  
  82.        out.println(name+"&nbsp&nbsp&nbsp&nbsp"+size+"<br>");  
  83.       }catch(Exception e){  
  84.        out.println("333"+e);  
  85.       }  
  86.      }  
  87.      else{  
  88.       throw new IOException("fail to upload");  
  89.      }  
  90.     }  
  91.    }  
  92.   }catch(IOException e1){  
  93.    out.println("222"+e1);  
  94.   }catch(FileUploadException e2){  
  95.    out.println("111"+e2);   
  96.   }   
  97.  }   
  98.   
  99.  /**  
  100.   * The doPost method of the servlet. <br>  
  101.   *  
  102.   * This method is called when a form has its tag value method equals to post.  
  103.   *   
  104.   * @param request the request send by the client to the server  
  105.   * @param response the response send by the server to the client  
  106.   * @throws ServletException if an error occurred  
  107.   * @throws IOException if an error occurred  
  108.   */  
  109.  public void doPost(HttpServletRequest request, HttpServletResponse response)   
  110.    throws ServletException, IOException {   
  111.   doGet(request,response);   
  112.  }   
  113.   
  114.  /**  
  115.   * Initialization of the servlet. <br>  
  116.   *  
  117.   * @throws ServletException if an error occure  
  118.   */  
  119.  public void init() throws ServletException {   
  120.   if(!new File(uploadPath).isDirectory()){   
  121.    new File(uploadPath).mkdir();   
  122.   }   
  123.      
  124.   if(!tempPath.isDirectory()){   
  125.    tempPath.mkdir();   
  126.   }   
  127.  }   
  128.   
  129. }   


分享到:
评论

相关推荐

    利用commons-fileupload上传组件上传文件(一)

    在本文中,我们将深入探讨如何使用Apache Commons FileUpload组件来实现文件上传功能。Apache Commons FileUpload是一个用于处理HTTP请求中的多部分数据的Java库,它使得在Servlet或JSP应用中处理文件上传变得简单易...

    commons-fileupload.jar和commons-io.jar

    Apache Commons FileUpload和Commons IO两个库是Java中处理文件上传的关键组件,它们为SpringMVC和MyBatis这样的框架提供了强大的支持。本篇文章将深入探讨这两个库以及它们在图片处理中的作用。 首先,`commons-...

    commons-fileupload实现文件上传下载

    ### Commons-FileUpload 实现文件上传下载 #### 知识点概述 Commons-FileUpload 是 Apache 提供的一个用于处理 HTTP 文件上传的组件。它基于 Servlet 规范,并且能够解析来自 `multipart/form-data` 编码类型的 ...

    commons-fileupload文件上传实例

    本教程将详细介绍如何利用commons-fileupload实现文件上传功能,并提供一个简单的实例。 **一、Apache Commons FileUpload简介** Apache Commons FileUpload是Apache软件基金会开发的一个开源组件,专门处理HTTP...

    commons-fileupload.jar和commons-io.jar包

    在开发Java应用程序,尤其是涉及到Web应用中的文件上传功能时,`commons-fileupload.jar`和`commons-io.jar`是两个至关重要的库。这两个JAR文件分别提供了Apache Commons FileUpload和Apache Commons IO项目的功能,...

    commons-fileupload和commons-io的jar包

    例如,开发者可以先使用FileUpload解析出上传的文件,然后利用Commons IO将其保存到服务器的指定位置。 这两个库的源代码文件(sources)也一同提供,这对于学习和理解其内部实现机制非常有帮助。通过阅读源码,...

    利用commons-fileupload组件实现文件上传-实例

    通过以上步骤,我们就使用Apache Commons FileUpload组件实现了一个基本的文件上传功能。你可以根据自己的需求对这个示例进行扩展,比如添加错误处理、文件类型检查和存储优化等。参考提供的博文链接,可以获取更多...

    commons-fileupload-1.2.1.jar和commons-io-1.4.jar

    接着,可以利用FileUpload API解析请求,获取上传文件的信息,并将其保存到服务器。 为了确保文件上传的安全性,开发者需要考虑以下几个关键点: 1. **文件大小限制**:限制用户上传文件的大小,防止大文件消耗过多...

    Java Web上传组件使用:Commons-fileupload

    本文将深入探讨如何使用Commons FileUpload组件来处理文件上传。 Apache Commons FileUpload是Apache Commons项目的一部分,专门设计用于处理HTTP请求中的多部分数据,即通常在HTML表单中用于文件上传的数据格式。...

    commons-fileupload

    总的来说,`commons-fileupload`组件是Java Web开发中不可或缺的一部分,它极大地简化了文件上传的实现,让开发者可以专注于业务逻辑,而不是底层的细节。通过结合`commons-fileupload`和`commons-io`,我们可以构建...

    commons-fileupload和smartupload实现文件上传

    在Java Web开发中,文件上传是一项常见的功能,Apache Commons FileUpload和Smart Upload是两个常用的文件上传组件。这里我们将深入探讨这两个库以及如何在实际项目中使用它们。 首先,Apache Commons FileUpload是...

    commons-fileupload组件上传问题

    总结来说,`commons-fileupload`组件是Java Web开发中处理文件上传的标准工具,它的使用涉及前端表单设计、后端文件处理逻辑以及各种安全措施。理解其工作原理和最佳实践,对于提升Web应用的用户体验和安全性至关...

    struts2 文件下载需要的架包 commons-fileupload-1.2 commons-io-1.3.2

    以上就是关于Struts2中利用Apache Commons FileUpload和Apache Commons IO进行文件上传和下载的基本原理和实现流程。这两个库大大简化了处理文件操作的复杂性,提高了代码的可读性和可维护性。在实际开发中,应根据...

    用于上传的两个jar包 commons-fileupload-1.3.jar commons-io-2.4.jar

    在Java开发中,上传文件是一项常见的任务,而`commons-fileupload-1.3.jar`和`commons-io-2.4.jar`这两个jar包是Apache Commons项目中的重要组件,专门用于处理文件上传操作。Apache Commons是Java社区的一个子项目...

    commons-fileupload-1.3.3

    《Java文件上传:深入解析Apache Commons FileUpload 1.3.3》 在Java开发中,文件上传功能是一项常见的需求,而Apache Commons FileUpload库则是处理这种需求的强大工具。本篇将详细介绍Apache Commons FileUpload ...

    commons-fileupload-1.2.1-bin.zip

    总之,Apache Commons FileUpload 1.2.1是一个强大的文件上传组件,它简化了在Java Web应用中处理文件上传的复杂性,使得开发者能够专注于业务逻辑,而不是底层的细节。通过理解和熟练运用这个组件,可以提高应用的...

    commons-fileupload和io-1.3.2.rar

    标题中的"commons-fileupload"和"io-1.3.2.rar"以及描述和标签中的相同信息,都指向了Apache Commons项目中的两个关键组件:Apache Commons FileUpload和Apache Commons IO。这两个库是Java开发中处理文件上传和I/O...

    commons-fileupload-1.2.1-bin 和 commons-io-1.4-bin.zip

    标题中的"commons-fileupload-1.2.1-bin"和"commons-io-1.4-bin.zip"分别指的是Apache Commons FileUpload 1.2.1版本和Apache Commons IO 1.4版本的二进制包。这两个组件在Java开发中扮演着重要的角色,尤其在处理...

Global site tag (gtag.js) - Google Analytics