fileupload上传

  try
     { 
        if(ServletFileUpload.isMultipartContent(request))
        { 
          DiskFileItemFactory dff = new DiskFileItemFactory();//创建该对象 
          dff.setRepository(tmpDir);//指定上传文件的临时目录 
          dff.setSizeThreshold(1024000);//指定在内存中缓存数据大小,单位为byte 
          ServletFileUpload sfu = new ServletFileUpload(dff);//创建该对象 
          //sfu.setSizeMax(5000000);//指定单个上传文件的最大尺寸 
         // sfu.setSizeMax(10000000);//指定一次上传多个文件的总尺寸 
          FileItemIterator fii = sfu.getItemIterator(request);//解析request 请求,并返回FileItemIterator集合 
          while(fii.hasNext())
          { 
            FileItemStream fis = fii.next();//从集合中获得一个文件流 
            if(!fis.isFormField() && fis.getName().length()>0)
            {//过滤掉表单中非文件域 
                String fileName = fis.getName();//获得上传文件的文件名
                File file=new File(fileName);
                fileName=file.getName();
                BufferedInputStream in = new BufferedInputStream(fis.openStream());//获得文件输入流 
                //服务器文件保存路径=Main.homepath/uplaod/forum/attach/+年月+文件名
                BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream(new File(saveDir.getPath()+"/"+fileName)));//获得文件输出流 
                Streams.copy(in, outputStream, true);//开始把文件写到你指定的上传文件夹 
              
              //保存文件名
              String path="attach/"+TimeHelper.currentMonth() +"/" + fileName;
              if(count >0)
    {
     filepath+="|"+path;
    }else
    {
     filepath=path;
    }
    int num=Integer.parseInt( fis.getFieldName().substring(4,5));
    tream[num]=path;
    count++;
            } 
          }
        } 
    }
    catch(Exception e)
    { 
        e.printStackTrace(); 
        out.print("<script>window.parent.document.getElementById('errorid').innerHTML = '文件上传错误,请重新上传';</script>");finally
    {
     //判断字符串长度
     int valueLength = 0;
  String chinese = "[\u0391-\uFFE5]";
     for(int i=0;i<filepath.length(); i++)
  {
   String temp=filepath.substring(i,i+1);
   if(temp.matches(chinese))
   {
    valueLength+=2;
   }else{
    valueLength+=1;
   }
  }     
     if(valueLength >100)
     {
      //提示信息
   out.print("<script>window.parent.document.getElementById('errorid').innerHTML = '当前上传文件名太长,请重新上传';</script>");
     }else
     {
      //返回每个上传文件值
   for(int k=0;k<tream.length;k++)
   {
    out.print("<script>window.parent.document.getElementById('files"+ k +"').value = '"+ tream[k] +"';</script>");
   }
   //返回所有已上传文件路径
   out.print("<script>window.parent.document.getElementById('filepath').value = '"+ filepath +"';</script>");
   //提示信息
   out.print("<script>window.parent.document.getElementById('errorid').innerHTML = '当前已上传"+ count +"个文件';</script>");
  }
    }     
%>
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值