common-fileupload上传文件

文件上传在web应用中非常普遍,要在jsp环境中实现文件上传功能是非常容易的,因为网上有许多用java开发的文件上传组件,本文以commons-fileupload组件为例,为jsp应用添加文件上传功能。

common-fileupload组件是apache的一个开源项目之一,可以从http://jakarta.apache.org/commons/fileupload/下载。用该组件可实现一次上传一个或多个文件,并可限制文件大小。
下载后解压zip包,将commons-fileupload-1.0.jar复制到tomcat的webapps你的webappWEB-INFlib下,目录不存在请自建目录。

新建一个servlet: Upload.java用于文件上传:

import java.io.*;   

import java.util.*;   

import javax.servlet.*;   

import javax.servlet.http.*;   

import org.apache.commons.fileupload.*;   

public class Upload extends HttpServlet {   

  private String uploadPath = "F:\upload\"; // 上传文件的目录  

  private String tempPath = "F:\upload\tmp\"; // 临时文件目录   

  public void doPost(HttpServletRequest request,  HttpServletResponse response) throws IOException, ServletException {   

    

  try {   

        DiskFileUpload fu = new DiskFileUpload();   

    // 设置最大文件尺寸,这里是4MB   

        fu.setSizeMax(4194304);   

    // 设置缓冲区大小,这里是4kb   

        fu.setSizeThreshold(4096);   

    // 设置临时目录:   

        fu.setRepositoryPath(tempPath);   

    // 得到所有的文件:   

        List fileItems = fu.parseRequest(request);   

        Iterator i = fileItems.iterator();   

    // 依次处理每一个文件:   

    while(i.hasNext()) {   

            FileItem fi = (FileItem)i.next();   

        // 获得文件名,这个文件名包括路径:   

            String fileName = fi.getName();   

      // 在这里可以记录用户和文件信息   

      // ...   

      // 写入文件,暂定文件名为a.txt,可以从fileName中提取文件名:   

            fi.write(new File(uploadPath + "a.txt"));   

        }   

    } catch(Exception e) {   

    // 可以跳转出错页面   

    }  

 }   
}  
原文地址:https://www.cnblogs.com/estellez/p/3955421.html