乐码库:一个极速、放心、纯净的下载站! 更新: 资源发布
  • 您的位置:首页 > 技术文档 > JSP编程 > JSP组件commons-fileupload实现文件上传
  • 收藏本页
      JSP组件commons-fileupload实现文件上传
      发布时间:2016-12-21 08:04:52 关键词: JSP,commons,fileupload,文件上传
      内容简介:这篇文章主要介绍了JSP组件commons-fileupload实现文件上传,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    本文实例为大家分享了JSP使用commons-fileupload实现文件上传代码,供大家参考,具体内容如下

    1、准备:

    将commons-fileupload-1.1.zip和commons-io-1.1.zip复制到"\WEB-INF\lib"目录下

    2、首先是Servlet:FileUpload.java

    package servlet;
    
    import java.io.File;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.*;
    import java.util.regex.Pattern;
    import java.util.regex.Matcher;
    
    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.FileUploadException;
    import org.apache.commons.fileupload.disk.DiskFileItemFactory;
    import org.apache.commons.fileupload.servlet.ServletFileUpload;
    
    public class FileUpload extends HttpServlet {
     
     private String uploadPath="E:\\addnetFile\\";//要上传文件的目录
     private File tempPath=new File("E:\\tempFile\\");//存放上传的文件的目录
     
     public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
     }
    
     public void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
     response.setContentType("text/html;charset=GB2312");
     response.setCharacterEncoding("gb2312");
     PrintWriter out=response.getWriter();
     out.println("请求内容的长度为:"+request.getContentLength());
     out.println("请求内容的类型为:"+request.getContentType());
     
     DiskFileItemFactory factory=new DiskFileItemFactory();
     factory.setRepository(tempPath);
     factory.setSizeThreshold(4096);
     
     ServletFileUpload upload=new ServletFileUpload(factory);
     upload.setSizeMax(1000000);
     List<?> fileitems=null;
     try{
      fileitems=upload.parseRequest(request);
      Iterator<?> iterator=fileitems.iterator();
      String regex=".+\\\\(.+)$";
      String[] errortype={".exe",".com",".cgi",".asp"};
      Pattern p=Pattern.compile(regex);
      while(iterator.hasNext()){
      FileItem item=(FileItem) iterator.next();
      if(!item.isFormField()){
       String name=item.getName();
       long size=item.getSize();
       if(name==null||name.equals("")&&size==0)
       continue;
       Matcher m=p.matcher(name);
       if(m.find()){
       for(int temp=0;temp<errortype.length;temp++){
        if(m.group(1).endsWith(errortype[temp]))
        throw new IOException(name+":wrong type");
       }
       try{
        item.write(new File(tempPath,m.group(1)));
        out.println(name+" "+size+"<br/>");
        out.println("上传成功");
       }catch(Exception e){
        out.println("333"+e);
       } 
       }
       else{
       throw new IOException("fail to upload");
       }
       
      }
      }
     }catch(IOException e){
      out.println("222"+e);
     }
     catch(FileUploadException e1){
      e1.printStackTrace();
      out.println("111"+e1);
     }
     }
    
     public void init() throws ServletException {
     if(!new File(uploadPath).isDirectory())
      new File(uploadPath).mkdir();
     if(!tempPath.isDirectory())
      tempPath.mkdir();
     }
     
     public void destroy(){
     super.destroy();
     }
    
    }
    

    3、其次是html:Uploadfile.html

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
     <head>
      <title>Uploadfilel.html</title>
     
      <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
      <meta http-equiv="description" content="this is my page">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      
      <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
    
     </head>
     
     <body>
      <form action="/Firstjsp/servlet/FileUpload" method="post" enctype="multipart/form-data" name="form1">
      <input type="file" name="file"/>
      <input type="submit" name="submit" value="upload"/>
      </form>
      <form action="/Firstjsp/servlet/FileUpload" method="post" enctype="multipart/form-data" name="uploadform">
      <table>
      <tr>
       <td>
       文件1:<input type="file" name="X" size="40"/>
       </td>
      </tr>
      <tr>
       <td>
       文件2:<input type="file" name="Y" size="40"/>
       </td>
      </tr>
      <tr>
       <td>
       文件3:<input type="file" name="Z" size="40"/>
       </td>
      </tr>
      </table>
      <input type="submit" name="upload" value="开始上传"/> 
      </form>
     </body>
    </html>
    

    4、最后是配置web.xml

    <servlet>
      <description>This is the description of my J2EE component</description>
      <display-name>This is the display name of my J2EE component</display-name>
      <servlet-name>FileUpload</servlet-name>
      <servlet-class>servlet.FileUpload</servlet-class>
     </servlet>
    <servlet-mapping>
      <servlet-name>FileUpload</servlet-name>
      <url-pattern>/servlet/FileUpload</url-pattern>
    

    首先运行html,servlet处理上传请求

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持乐码库。

      最新更新
      热门排行榜