使用FileUpload组件实现文件上传

      common-fileupload组件是apache的一个开源项目之一,可以从http://jakarta.apache.org/site/binindex.cgi下载。该组件简单易用,可实现一次上传一个或多个文件,并可限制文件大小。 
    下载后解压zip包,将commons-fileupload-1.0.jar复制到tomcat的webapps你的应用程序的WEB-INF/lib下,如果目录不存在请自建目录。 
    下面用到的另外两个目录都要先创建(请下载的我的文件夹参考),一是用于存放上传文件的目录dir,二是存放临时文件的目录temp。

含有表单的上传html文件,upload.html
<html> 
<head> 
<title>文件上传</title> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
</head> 
<body> 
<b>文件上传</b></font></p> 
                                                                                                
<form name="UploadForm" enctype="multipart/form-data" method="post" action="upload.jsp"> 
    <input type="file" name="File1" size="20" maxlength="20"> <br> 
    <input type="file" name="File2" size="20" maxlength="20"> <br> 
    <input type="submit"value="上传"> 
</form> 
                                                                                                
</body> 
</html> 


下面是处理表单的jsp文件:upload.jsp
<%@ page import="org.apache.commons.fileupload.*" %> 
<%@ page import="java.util.List" %> 
<%@ page import="java.util.Iterator" %> 
<%@ page import="java.io.File" %> 
<%@ page contentType="text/html;charset=gb2312" %> 
<% 
  String temp=getServletContext().getRealPath("/")+"temp";   //临时目录
  String loadpath=getServletContext().getRealPath("/")+"dir"; //上传文件存放目录
  DiskFileUpload fu = new DiskFileUpload();
  fu.setSizeMax(1*1024*1024);   // 设置允许用户上传文件大小,单位:字节
  fu.setSizeThreshold(4096);   // 设置最多只允许在内存中存储的数据,单位:字节
  fu.setRepositoryPath(temp); // 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录

  //开始读取上传信息
  List fileItems = fu.parseRequest(request);
 Iterator iter = fileItems.iterator(); // 依次处理每个上传的文件

 while (iter.hasNext()) {
    FileItem item = (FileItem) iter.next();// 忽略其他不是文件域的所有表单信息
    if (!item.isFormField()) {
         String name = item.getName();//获取上传文件名,包括路径
         name=name.substring(name.lastIndexOf("//")+1);//从全路径中提取文件名
        // out.println(name);
         long size = item.getSize();
         if((name==null||name.equals("")) && size==0)
         continue;
         out.println(item.getName()+"    Size="+item.getSize()+"<br>");//输出上传文件信息
      
         File fNew= new File(loadpath, name); 
      
         item.write(fNew); 

  }
 }
%> 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值