最近项目有一模块上处理上传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();
解后得到文件后,进行业务处理
分享到:
相关推荐
(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》 【324M】高清PDF,下了不后悔,由于本人上传权限有限,只能最大上传70M,所以不得已只能分5卷压缩,看清楚再下载,一共5卷压缩包,总共需要3分(第一卷3分,其他卷0分),...
jspSmartUpload是一个可免费使用的全功能的文件上传下载组件,适于嵌入执行上传下载操作的JSP文件中。该组件有以下几个特点: 1、使用简单。在JSP文件中仅仅书写三五行java代码就可以搞定文件的上传或下载,方便。 2...
commons-fileupload-1.2.1实现文件上传 需导入commons-fileupload-1.2.1.jar和 commons-io-1.3.2.jar upload2.jsp *" pageEncoding="gb2312"%> <!DOCTYPE ...
// 设置上传文件时用于临时存放文件的内存大小,这里是4K.多于的部分将临时存在硬盘 dfif.setRepository(new File(request.getRealPath("/") + "ImagesUploadTemp"));// 设置存放临时文件的目录,web根目录下的...
项目详细请看这里 http://blog.csdn.net/qw765811529/article/details/50748599
JSP源码,上传下载,JSP文件上传实例,AJAX 基于AJAX的WEB上传程序,JSP环境,一次可上传多个文件,带进度条控制,单个文件最大可上传100M文件。
将下载的压缩文件解压得到如下两个类包:commons-fileupload-1.2.jar和commons-io-1.3.2.jar,将两个类包路径添加到当前系统CLASSPATH环境变量中,同时在当前web应用程序的WE-INF/lib文件夹下复制一份。
java课程设计使用jsp+mysql完成的Web端图书管理系统+数据库。包含用户图书借阅、图书管理员、系统管理员三大模块,功能很齐全。 用户模块 查看公告:能看到图书管理员发布的公告信息。 图书查看:分页显示,能看到...
运行JAR打包命令:jar cvf jspSmartUpload.jar com<br>(也可以打开资源管理器,切换到当前目录,用WinZip将com目录下的所有文件压缩成jspSmartUpload.zip,然后将jspSmartUpload.zip换名为jspSmartUpload.jar文件...
java web存储系统: 支持多个不同用户上传,下载,删除文件。 1、可以支持多个用户共同操作,主要功能包括文件上传、下载、删除、创建和删除文件夹。 2、用户登录系统后能够看到之前建立的文件夹,打开文件夹能够看到...
jsp页面内实现批量上传下载,是一个很好的实例,相信值得大家下载!
由于Java Web开发技术大全pdf文件太大120多M,上传资源要求在20M以内,所以大家必须要把Java Web开发技术大全.z01,Java Web开发技术大全.z02,Java Web开发技术大全.z03,Java Web开发技术大全.z04,Java Web开发...
这个项目是一个基于Java语言开发的Web应用程序,采用SSM(Spring+SpringMVC+MyBatis)或SSH(Spring+SpringMVC+Hibernate)框架进行开发,使用MySQL作为数据存储,JSP作为页面开发。 项目的目标是构建一个高效、可靠...
jspSmartUpload是由www.jspsmart.com网站开发的一个可免费使用的全功能的文件上传下载组件,适于嵌入执行上传下载操作的JSP文件中。该组件有以下几个特点: <br>1、使用简单。在JSP文件中仅仅书写三五行...
全书一共被压缩为5个rar,这是第二个!!!! 其他的请看ID:ljtt123(本人分享) 本博客提供的所有教程的资源原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播。同时,转载时不要移除本申明。如产生任何...
全书一共被压缩为5个rar,这是第三个!!!! 其他的请看ID:ljtt123(本人分享) 本博客提供的所有教程的资源原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播。同时,转载时不要移除本申明。如产生任何...
全书一共被压缩为5个rar,这是第四个!!!! 其他的请看ID:ljtt123(本人分享) 本博客提供的所有教程的资源原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播。同时,转载时不要移除本申明。如产生任何...
文件上传,包括但不限于图片上传,是 Web 开发中司空见惯的场景,相信各位或多或少都曾写过这方面相关的代码。Java 界若说文件上传,则言必称 Apache Commons FileUpload,论必及 SmartUpload。更甚者,Servlet 3.0...
主要内容包括web应用程序运行原理、主流集成开发工具(eclipse/myeclipse)和运行环境(tomcat)的配置和使用、servlet、jsp、jdbc、jsp表达式语言(el)、servlet监听器和过滤器、定制标记库、jstl、mvc模式、dao...