注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

_

_

 
 
 

日志

 
 

jsp web上传zip文件的处理(转)  

2011-08-15 23:41:14|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
jsp web上传zip文件的处理

WebJSPF#

最近项目有一模块上处理上传ZIP文件,总结一下处理方法

 File[] files=null;      try {        MultiPartRequestWrapper mpRequest =(MultiPartRequestWrapper)request;     //struts2:对REQUEST进行转换,用于得到上传文件    HttpSession session=request.getSession();    files = mpRequest.getFiles("upload");                 String[] fileNames = mpRequest.getFileNames("upload");                        //得到文件名    String folder = request.getSession().getServletContext().getRealPath("input");//文件存放路径    for(int i=0;i<files.length;i++){     File file = new File(folder,fileName[i]);         //存放文件   InputStream in;               //输入流   try {        in = new FileInputStream(item);          //得到文件上传流    FileOutputStream out = new FileOutputStream(files[i]);    byte[] buffer = new byte[4096];          // To hold file contents    int bytes_read;             while ((bytes_read = in.read(buffer)) != -1) {      out.write(buffer, 0, bytes_read);    }       if (in != null) {              //关闭输入流     try {         in.close();     } catch (IOException e) {         e.printStackTrace();     }    }    if (out != null) {              //关闭输出流     try {         out.close();     } catch (IOException e) {         e.printStackTrace();     }    }      UnZipper un=UnZipper.getInstance();          //Zip文件类实例化         un.UnZip(folder+"\\"+fileName);           //解压ZIP文件(在服务器存储空间中)      fileName =fileName.replace('/', '\\').substring(0,fileName.lastIndexOf("."))+"\\";  //得到解压后文件夹名称      dirFile = new File(folder+"\\"+fileName);        //得到解压后文件夹路径    File[] list = FileUtil.listSortedFiles(dirFile);      //遍立文件夹,得到文件夹所有文件        if(list!=null&&list.length<5){           //如果文件数为小于5个,抛出     throw new BusinessException("文件数必需为5个");    }         if(list!=null&&list.length==5){           //文件名不符,抛出     for (int i = 0; i < list.length; i++){      if(!list[i].getName().equals("F"+(i+1)+".txt")){       throw new BusinessException("文件名称格式必需为F1.txt~F5.txt");      }           }    }     files[i].delete();                                                        //删除上传文件       }           } catch (Exception e) {    if(files!=null){     for(File f:files){      if(f!=null){       f.delete();                //删除上传文件      }     }     }    e.printStackTrace();

  解后得到文件后,进行业务处理

  评论这张
 
阅读(620)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017