common-fileUpload上传

=======================jsp页面======================

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
   
    <title>My JSP 'index.jsp' starting page</title>
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">   
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->
  </head>
 
  <body>
     <form action="executeUpload.jsp" method="post"  enctype="multipart/form-data">
      your file:<input type="file" name="fileName"/><br/>
      
      上传:<input type="submit"   value="上传">
     </form>
  </body>
</html>

 

============================后台处理上传==========================

<%
  //实例化工厂
  DiskFileItemFactory factory=new DiskFileItemFactory();
  //设置上传工厂的限制
  factory.setSizeThreshold(1024*1024*20);
  //设置上传的存放处
  //---1:直接存放到项目根目录
  //factory.setRepository(new File(request.getRealPath("/")));
  //---2:存放到指定的文件目录
   File file=new File(request.getRealPath("/")+"userFile");
    if(!file.exists()){
     file.mkdirs();
    }
   factory.setRepository(file);
  //创建上传文件的类ServletFileUpload是主要的
  ServletFileUpload upload=new ServletFileUpload(factory);
  //设置上传文件的大小
  upload.setSizeMax(1024*1024*20);
  //处理HTTP请求,items是所有表单项
  List items=upload.parseRequest(request);
  
  //遍历所有表单项
  for(Iterator it=items.iterator();it.hasNext();){
   FileItem item=(FileItem)it.next();
   //如果表单项是普通文本项
   if(item.isFormField()){
    String name=item.getFieldName();
    String value=item.getString("GBK");
    System.out.println("name=value:"+name+"="+value);
   }else{
    //取得文件表单域的名称
   String fieldName=item.getFieldName();
    //取得文件名
   String fileName=item.getName();
    //取得文件类型
   String contentType=item.getContentType();
   
   //上传文件
   FileOutputStream write=new FileOutputStream(
     request.getRealPath("/")+"userFile/"+
     System.currentTimeMillis()+
     fileName.substring(fileName.lastIndexOf("."),fileName.length())
     
   ); 
   
   //如果要上传的文件在内存中已经存在
   if(item.isInMemory()){
    write.write(item.get());
   }else{
    //得到输入流
    InputStream is=item.getInputStream();
    int len=0;
    byte[] bytes=new byte[1024];
    while(true){
     len=0;
     len=is.read(bytes);
     if(len<1)
      break;
     write.write(bytes,0,len);
    }
    is.close();
    write.flush();
    write.close();
   }
   
   
   }
  }
  
  
  
  
 %>

===========注意用此方法需要两个jar包:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值