`
cherubo
  • 浏览: 4946 次
  • 来自: ...
文章分类
社区版块
存档分类

jsp web上传zip文件的处理

阅读更多

最近项目有一模块上处理上传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();

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

分享到:
评论
1 楼 sunbird69 2008-09-29  
cool ~~~

相关推荐

    纯JSP带进度条无刷新的多文件上传

    (8)具体效果请看http://blog.csdn.net/hbccgg/archive/2011/04/29/6371080.aspx (9)压缩文件为Eclipse源文件,请发布到Web服务器上运行 (10)在Tomcat7.0环境开发。若要支持Tomcat6.0以下版本,请在WEB-INF\...

    Java.Web整合开发王者归来.JSP.Servlet(卷2/5卷压缩)

    《Java.Web整合开发王者归来.JSP.Servlet》 【324M】高清PDF,下了不后悔,由于本人上传权限有限,只能最大上传70M,所以不得已只能分5卷压缩,看清楚再下载,一共5卷压缩包,总共需要3分(第一卷3分,其他卷0分),...

    jspSmartUpload.zip

    jspSmartUpload是一个可免费使用的全功能的文件上传下载组件,适于嵌入执行上传下载操作的JSP文件中。该组件有以下几个特点: 1、使用简单。在JSP文件中仅仅书写三五行java代码就可以搞定文件的上传或下载,方便。 2...

    Jsp文件上传下载(工具类源码)

    commons-fileupload-1.2.1实现文件上传 需导入commons-fileupload-1.2.1.jar和 commons-io-1.3.2.jar upload2.jsp *" pageEncoding="gb2312"%&gt; &lt;!DOCTYPE ...

    java结合jsp写的上传文件代码

    // 设置上传文件时用于临时存放文件的内存大小,这里是4K.多于的部分将临时存在硬盘 dfif.setRepository(new File(request.getRealPath("/") + "ImagesUploadTemp"));// 设置存放临时文件的目录,web根目录下的...

    文件上传下载【jsp+servlet】

    项目详细请看这里 http://blog.csdn.net/qw765811529/article/details/50748599

    ajax+jsp上传程序加进度条.zip

    JSP源码,上传下载,JSP文件上传实例,AJAX 基于AJAX的WEB上传程序,JSP环境,一次可上传多个文件,带进度条控制,单个文件最大可上传100M文件。

    JSP 文件上传组件commons-io-1.3.2-bin.zip

    将下载的压缩文件解压得到如下两个类包:commons-fileupload-1.2.jar和commons-io-1.3.2.jar,将两个类包路径添加到当前系统CLASSPATH环境变量中,同时在当前web应用程序的WE-INF/lib文件夹下复制一份。

    java课程设计使用jsp+mysql完成的Web端图书管理系统源码+数据库文件.zip

    java课程设计使用jsp+mysql完成的Web端图书管理系统+数据库。包含用户图书借阅、图书管理员、系统管理员三大模块,功能很齐全。 用户模块 查看公告:能看到图书管理员发布的公告信息。 图书查看:分页显示,能看到...

    jspSmartUpload 使用教程

    运行JAR打包命令:jar cvf jspSmartUpload.jar com&lt;br&gt;(也可以打开资源管理器,切换到当前目录,用WinZip将com目录下的所有文件压缩成jspSmartUpload.zip,然后将jspSmartUpload.zip换名为jspSmartUpload.jar文件...

    j2ee实验-java web存储系统-servlet+jsp+mysql.zip

    java web存储系统: 支持多个不同用户上传,下载,删除文件。 1、可以支持多个用户共同操作,主要功能包括文件上传、下载、删除、创建和删除文件夹。 2、用户登录系统后能够看到之前建立的文件夹,打开文件夹能够看到...

    jsp页面内实现批量上传下载.rar

    jsp页面内实现批量上传下载,是一个很好的实例,相信值得大家下载!

    Java Web开发技术大全.zip pdf文件

    由于Java Web开发技术大全pdf文件太大120多M,上传资源要求在20M以内,所以大家必须要把Java Web开发技术大全.z01,Java Web开发技术大全.z02,Java Web开发技术大全.z03,Java Web开发技术大全.z04,Java Web开发...

    [上传下载]仿163网盘无刷新文件上传forJsp_fileupload_jsp.zip

    这个项目是一个基于Java语言开发的Web应用程序,采用SSM(Spring+SpringMVC+MyBatis)或SSH(Spring+SpringMVC+Hibernate)框架进行开发,使用MySQL作为数据存储,JSP作为页面开发。 项目的目标是构建一个高效、可靠...

    jspsmartupload.jar

     jspSmartUpload是由www.jspsmart.com网站开发的一个可免费使用的全功能的文件上传下载组件,适于嵌入执行上传下载操作的JSP文件中。该组件有以下几个特点: &lt;br&gt;1、使用简单。在JSP文件中仅仅书写三五行...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    全书一共被压缩为5个rar,这是第二个!!!! 其他的请看ID:ljtt123(本人分享) 本博客提供的所有教程的资源原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播。同时,转载时不要移除本申明。如产生任何...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    全书一共被压缩为5个rar,这是第三个!!!! 其他的请看ID:ljtt123(本人分享) 本博客提供的所有教程的资源原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播。同时,转载时不要移除本申明。如产生任何...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    全书一共被压缩为5个rar,这是第四个!!!! 其他的请看ID:ljtt123(本人分享) 本博客提供的所有教程的资源原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播。同时,转载时不要移除本申明。如产生任何...

    JSP实用教程之简易文件上传组件的实现方法(附源码)

    文件上传,包括但不限于图片上传,是 Web 开发中司空见惯的场景,相信各位或多或少都曾写过这方面相关的代码。Java 界若说文件上传,则言必称 Apache Commons FileUpload,论必及 SmartUpload。更甚者,Servlet 3.0...

    《Java Web开发与实战--Eclipse+Tomcat+Servlet+JSP整合应用》.(刘伟,张利国).[PDF].zip

    主要内容包括web应用程序运行原理、主流集成开发工具(eclipse/myeclipse)和运行环境(tomcat)的配置和使用、servlet、jsp、jdbc、jsp表达式语言(el)、servlet监听器和过滤器、定制标记库、jstl、mvc模式、dao...

Global site tag (gtag.js) - Google Analytics