`
- 浏览:
375131 次
- 性别:
- 来自:
大连
-
FileUpload文件上传组件与java.util.zip解压缩类
使用总结
/**
*要完成的功能,从页面上传zip文件及若干参数,将zip文件解压缩放到指定位置
*使用到的组件有文件长传组件FileUpload,java类,java.util.zip;
/
<form action="fileUploadFinish.jsp" name="fileform" method="post" enctype="multipart/form-data">
接受页面的处理
DiskFileItemFactory dff = new DiskFileItemFactory();
dff.setSizeThreshold(Integer.parseInt(ZipUploadConfig.getProperty("SIZETHRESHOLD")));
ServletFileUpload sfu = new ServletFileUpload(dff);
sfu.setFileSizeMax(Integer.parseInt(ZipUploadConfig.getProperty("FILESIZEMAX")));
sfu.setSizeMax(Integer.parseInt(ZipUploadConfig.getProperty("SIZEMAX")));
HashMap param = new HashMap();
List list = sfu.parseRequest(request);//包括了,form表单中的字段和上传文件
if (list != null && list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
FileItem fi = (FileItem) list.get(i);
if (fi.isFormField()) { //将参数中的form表单中的字段提取出来
String name = fi.getFieldName();
String value = fi.getString();
param.put(name, value);
}
}
}
String overload_flag = ""+param.get("overload_flag");//将form表单中的字段取出
String stylesheet = ""+param.get("stylesheet");
String template = ""+param.get("template");
if (list != null && list.size() > 0) {
for (int j = 0; j < list.size(); j++) {
FileItem fi = (FileItem) list.get(j);
if (!fi.isFormField() && fi.getName().length() > 0) { //将上传的文件取出
String zipFileName = fi.getName().substring(fi.getName().lastIndexOf("\\") + 1);//去掉盘符路径,只留下文件名
//contentInfo.setContenttype(zipFileName.substring(0, zipFileName.lastIndexOf(".")));
BufferedInputStream in = new BufferedInputStream(fi.getInputStream());
FileUploader zip = new FileUploader(db, in, contentInfo,servletContext);
Map result = zip.unzip();
in.close();
}
}
}
FileUploader.java
public FileUploader(DB db, InputStream inStream,ContentInfoBean contentInfo,ServletContext servletcontext) {
super();
this.servletcontext = servletcontext;
this.inStream = inStream;
this.db = db;
this.contentInfo = contentInfo;
}
public HashMap unzip() {
HashMap result = new HashMap();
//
// Expand ZIP file
//
ZipInputStream in = new ZipInputStream(this.inStream);
ZipEntry z;
Date now = new Date();
String tmpPath = UploadFileConfig.getUploadTmpPath() + File.separator + now.getTime();//UploadFileConfig.getUploadTmpPath()<--->E:\\project\\V682\\upload\\tmp
File file = new File(tmpPath);
if (!file.exists()) {
try {
file.mkdirs(); //创建临时文件夹
} catch (Exception e) {
e.printStackTrace();
}
}
try {
while ((z = in.getNextEntry()) != null) {
String name = z.getName();
if (z.isDirectory()) {
name = name.substring(0, name.length() - 1);
File f = new File(tmpPath + File.separator + name);
try {
f.mkdirs();
} catch (Exception e) {
e.printStackTrace();
}
} else {
if (name.indexOf("/") > 0) {
File folder = new File(tmpPath + File.separator + name.substring(0, name.lastIndexOf("/")));
if (!folder.exists()) {
try {
folder.mkdirs();
} catch (Exception e) {
e.printStackTrace();
}
}
}
File f = new File(tmpPath + File.separator + name);
f.createNewFile();
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(f));
int size = 0;
byte[] b = new byte[4096];
while ((size = in.read(b)) != -1) {
out.write(b, 0, size);
}
out.close();
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
首先,我们来看一下标题:“利用Common-fileupload封装的文件上传组件...附上源码”。这表明我们将讨论如何使用这个库来创建一个文件上传系统,并且提供有源码可供参考。通过`Common-fileupload`,我们可以实现用户...
apache commons.fileupload上传组件在上传文件时,在调用parseRequest方法时,先将输入流上传到服务器临时目录,在之后的文件处理过程中,再将临时目录下保存的文件复制到指定的目录,多了一道转储步骤。本实现抽取...
Apache Commons FileUpload是一个Java库,专门用于处理HTTP协议中的文件上传功能。这个组件使得在Web应用中接收用户通过表单提交的多个文件变得容易。基于此库,我们可以创建一个简单的文件上传组件,以处理文件上传...
使用fileupload组件实现文件上传功能 FileUpload组件是Apache提供的一款文件上传组件,能够帮助我们轻松实现文件上传功能。下面我们将详细介绍使用FileUpload组件实现文件上传功能的步骤和要点: 首先,需要引入两...
在使用 Apache Commons FileUpload 进行文件上传之前,你需要确保以下组件已经准备就绪: 1. **引入依赖**:首先,你需要下载并添加 `org.apache.commons.io` 和 `log4j` 的 JAR 包到你的项目类路径中。在本例中,`...
本示例中的"fileUpload文件上传组件例子"提供了一个自定义实现的文件上传组件,旨在帮助开发者理解并掌握这一关键功能的实现方式。 首先,我们需要了解文件上传的基本原理。在HTML中,`<input type="file">`标签...
文件上传组件commons-fileupload用户指南文件上传组件commons-fileupload用户指南
FileUpload 文件上传组件的ASP.NET实例,基于主副窗口的上传程序,利用线程提升上传... ASP.NET FileUpload上传图片并解决上传限制 解决FileUpload控件上传文件大小限制 ASP.NET中实现FileUpload多文件上传
至于压缩包处理,Java标准库提供了`java.util.zip`包,可以方便地进行文件压缩和解压缩。例如,可以创建一个方法将多个文件打包成一个ZIP文件: ```java import java.io.FileOutputStream; import java.io....
标题中的"FileUpload整理过多选文件上传.zip"表明这是一个关于批量文件上传技术的资源包。在这个压缩包中,开发者或者学习者将找到有关如何实现一次选择并上传多个文件的解决方案。描述提到的"支持多文件上传,打破...
Apache Commons FileUpload是一个Java库,专门用于...Apache Commons FileUpload是一个强大且灵活的库,它简化了Java Web应用中的文件上传操作。通过正确配置和使用,开发者可以为用户提供安全、高效的文件上传体验。
在Java Web开发中,文件上传是一项常见的功能,Apache Commons FileUpload库是实现这一功能的强大工具。本示例将深入解析如何结合Maven构建一个基于Servlet的文件上传演示项目。Maven是一个项目管理工具,它可以帮助...
标题中的"commons-fileupload-1.4-bin.zip"表明这是一个包含Apache Commons FileUpload 1.4版本的二进制文件包,而描述中的"fileupload-1.4"进一步确认了这个版本号。 Apache Commons FileUpload的主要功能在于解析...
### 使用commons-fileupload-1.0进行文件上传的实例及乱码处理 #### 一、commons-fileupload简介 `commons-fileupload`是Apache Commons项目下的一个子项目,它提供了强大的文件上传功能,允许用户轻松地将文件从...
"commons-fileupload-1.2.2-bin.zip"是这个库的一个特定版本,即1.2.2版的二进制发行包,包含所有必要的类和资源文件,可以方便地集成到Java项目中。 文件上传在Web应用中是一个重要且复杂的任务,因为HTTP协议本身...
Java文件上传组件包(FileUpload)是Apache软件基金会的一个开源项目,主要负责处理HTTP协议中的文件上传功能。这个组件在Web应用开发中扮演着重要角色,尤其在处理用户通过表单上传大文件时,提供了高效且灵活的...
Apache Commons IO 是另一个库,虽然在这个场景中未直接使用,但它提供了许多与文件操作相关的实用工具类,如 `FileUtils`,可以方便地完成文件的复制、移动、删除等操作。 总的来说,Apache Commons FileUpload 和...