- 浏览: 162271 次
- 性别:
- 来自: 厦门
文章分类
最新评论
-
jxpath:
局部变量的生命周期-----引用传递作为函数值返回的呢?
php变量的生命周期 -
mdusa_java:
文件上传,使用Apache组件上传文件 -
qzlijian:
spring MVC 转向(重定向) -
青春的、脚步:
解决办法:<s:form action="&q ...
Struts2中action的方法被执行两次 -
zcz123:
这不正是你的真实写照吗
程序员装B指南
使用Apache文件上传组件来接受浏览器上传的文件,该组件由多个类共同组成,但是,对于使用该组件来编写文件上传功能的Java Web开发人员来说,只需要了解和使用其中的三个类:DisFileUpload, FileItem和FileUploadException。这三个类全部位于org.apache.commons.fileupload包中
1.DiskFileUpload类DiskFileUpload类是Apache文件上传组件的核心类,应用程序开发人员通过这个类来与Apache文件上传组件进行交互。但现在Apache建议使用ServletFileUpload类,两个类的方法类似。
2.setSizeMax方法setSizeMax方法用于设置请求消息实体内容的最大允许大小,单位是字节。防止客服端恶意通过上传特大的文件来塞满服务器端的存储空间。其完整的语法定义如下:
public void setSizeMax(Long sizeMax)
如果请求消息中的实体内容的大小超过了setSizeMax 方法的使者值,改方法将会抛出FileUploadException异常
3.setSizeThreshold方法Apache文件上传组件在解析和处理上传数据中的每个字段内容时,需要临时保存解析出的数据。因为Java虚拟机默认可以使用的内存空间是有限的(不大于100M)
setSizeThreshold方法用于设置是否使用临时文件保存解析出的数据的那个临界值,改方法传入的参数的单位是字节,其完整语法定义如下:
public void setSizeThreshold(int sizeThreshold)
4.setRepositoryPath方法setRepositoryPath方法用于设置setSizeThreshold方法中提到的临时文件的存放目录,这里要求使用绝对路径
5.parseRequest方法parseRequest方法是DiskFileUpload类的重要重要方法,它是对Http请求消息进行解析的入口方法,如果请求消息中的实体内容的类型不是“multipart/form-date”改方法将抛出FileUploadException异常
6.setHeaderEncoding方法设置字符编码
7.FileItem类FileItem类是用来封转单个表单字段元素的数据,一个表单字段元素对应一个FileItem对象,通过调用FileItem对象的方法可以获得相关表单字段元素的数据。FileItem是一个借口,在应用程序中使用的实际是改接口的一个实现类,FileItem类还实现了Serializable接口,以支持序列化操作
8.isFormField方法isFormField方法用于判断FileItem类对象封装的数据是否属于一个普通表单字段,还是属于一个文件表单字段,如果是普通表单字段则返回true,否则返回false
9.getName方法getName方法用于获取文件上传字段中的文件名
看下面具体代码:
public class FileUploadUntil {
public Map parameters;
public Map files;
private long sizeMax = -1;
private int sizeThreshold = DiskFileItemFactory.DEFAULT_SIZE_THRESHOLD;// 系统值
public void parse(HttpServletRequest request){
parameters = new HashMap();
files = new HashMap();
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(sizeThreshold); //设置临时保存解析出的数据大小
ServletFileUpload upload = new ServletFileUpload(factory);//Apache组建文件上传的核心类
upload.setSizeMax(sizeMax);//设置上传大小限制
upload.setHeaderEncoding(encoding); //设置字符编码
try {
List items = upload.parseRequest(request); //解析表单提交类型
Iterator iterator = items.iterator();
while(iterator.hasNext()){
FileItem item = (FileItem)iterator.next(); //通过调用FileItem对象的方法可以获得相关表单字段元素的数据
if(item.isFormField()){ //判断是否是正常的表单提交方式
String fieldName = item.getFieldName();
String value = item.getString();
parameters.put(fieldName, value);
}else{
String fieldName = item.getFieldName();
files.put(fieldName, item);
}
}
} catch (FileUploadException e) {
e.printStackTrace();
this.setUploadError(true);
}
}
public String getFileName(FileItem item){
String fileName = item.getName();
fileName = this.replace(fileName,"\\", "/");
fileName = fileName.substring(fileName.lastIndexOf("/")+1);
return fileName;
}
}
1.DiskFileUpload类DiskFileUpload类是Apache文件上传组件的核心类,应用程序开发人员通过这个类来与Apache文件上传组件进行交互。但现在Apache建议使用ServletFileUpload类,两个类的方法类似。
2.setSizeMax方法setSizeMax方法用于设置请求消息实体内容的最大允许大小,单位是字节。防止客服端恶意通过上传特大的文件来塞满服务器端的存储空间。其完整的语法定义如下:
public void setSizeMax(Long sizeMax)
如果请求消息中的实体内容的大小超过了setSizeMax 方法的使者值,改方法将会抛出FileUploadException异常
3.setSizeThreshold方法Apache文件上传组件在解析和处理上传数据中的每个字段内容时,需要临时保存解析出的数据。因为Java虚拟机默认可以使用的内存空间是有限的(不大于100M)
setSizeThreshold方法用于设置是否使用临时文件保存解析出的数据的那个临界值,改方法传入的参数的单位是字节,其完整语法定义如下:
public void setSizeThreshold(int sizeThreshold)
4.setRepositoryPath方法setRepositoryPath方法用于设置setSizeThreshold方法中提到的临时文件的存放目录,这里要求使用绝对路径
5.parseRequest方法parseRequest方法是DiskFileUpload类的重要重要方法,它是对Http请求消息进行解析的入口方法,如果请求消息中的实体内容的类型不是“multipart/form-date”改方法将抛出FileUploadException异常
6.setHeaderEncoding方法设置字符编码
7.FileItem类FileItem类是用来封转单个表单字段元素的数据,一个表单字段元素对应一个FileItem对象,通过调用FileItem对象的方法可以获得相关表单字段元素的数据。FileItem是一个借口,在应用程序中使用的实际是改接口的一个实现类,FileItem类还实现了Serializable接口,以支持序列化操作
8.isFormField方法isFormField方法用于判断FileItem类对象封装的数据是否属于一个普通表单字段,还是属于一个文件表单字段,如果是普通表单字段则返回true,否则返回false
9.getName方法getName方法用于获取文件上传字段中的文件名
看下面具体代码:
public class FileUploadUntil {
public Map parameters;
public Map files;
private long sizeMax = -1;
private int sizeThreshold = DiskFileItemFactory.DEFAULT_SIZE_THRESHOLD;// 系统值
public void parse(HttpServletRequest request){
parameters = new HashMap();
files = new HashMap();
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(sizeThreshold); //设置临时保存解析出的数据大小
ServletFileUpload upload = new ServletFileUpload(factory);//Apache组建文件上传的核心类
upload.setSizeMax(sizeMax);//设置上传大小限制
upload.setHeaderEncoding(encoding); //设置字符编码
try {
List items = upload.parseRequest(request); //解析表单提交类型
Iterator iterator = items.iterator();
while(iterator.hasNext()){
FileItem item = (FileItem)iterator.next(); //通过调用FileItem对象的方法可以获得相关表单字段元素的数据
if(item.isFormField()){ //判断是否是正常的表单提交方式
String fieldName = item.getFieldName();
String value = item.getString();
parameters.put(fieldName, value);
}else{
String fieldName = item.getFieldName();
files.put(fieldName, item);
}
}
} catch (FileUploadException e) {
e.printStackTrace();
this.setUploadError(true);
}
}
public String getFileName(FileItem item){
String fileName = item.getName();
fileName = this.replace(fileName,"\\", "/");
fileName = fileName.substring(fileName.lastIndexOf("/")+1);
return fileName;
}
}
发表评论
-
连接池技术
2011-06-24 17:55 8461.为什么使用连接池技术:数据库的建立和连接都是极其消耗系统资 ... -
私有的构造方法不能被实例化
2011-04-26 20:58 911v -
JDBC,JDBC连接数据库
2011-03-30 20:55 930package servlet_jdbc; import j ... -
接口和抽象类
2011-03-29 19:00 863java只能单继承,但接口可以实现多个接口。一个类可以继承一个 ... -
instance of用于判断对象是否相等或满足某种类型
2011-03-29 17:52 701静态方法可以被继承。但是,静态方法不能被覆盖,如果父类种的静态 ... -
复制对象用clone
2011-03-29 17:51 769飞 -
基本数据类型的包装类,数据对象
2011-03-29 14:35 858java为每一种数据类型提供一个包装类,这些类是:Charac ... -
== ,equals与matches,contains的区别
2011-03-29 13:43 3694public static void main(String ... -
二分查找法,数组的查找方法,二分法
2011-03-28 17:16 1195public static int binarySearch( ... -
获取数组中的最大值,求最大值
2011-03-28 15:16 1031public static void main(String ... -
随机字母,生成随机字符串,如何生成随机字母
2011-03-28 12:39 1209public static void main(String ... -
验证类型,如何验证一个数据类型, 类型验证转换
2011-03-24 17:32 920public static void main(String ... -
数组转化为字符串,用逗号分开。并去掉最后一个逗号
2011-03-24 11:37 10875public static void main(String[ ... -
保留两位小数点
2011-03-24 10:55 912public static void main(String[ ... -
upload文件上传,文件名全部变小写
2011-01-17 14:53 983我用MultipartFile上传文件的时候,文件名本身是大小 ... -
FileUtil (文件工具类),文件上传封装
2010-12-15 09:57 1556public class FileUtil { /* ... -
IO 流的分类
2010-12-14 16:39 1064IO的分类: 1.按流的方向分:按流的方向分可以分为输入流跟 ... -
Java集合框架
2010-12-14 10:32 649在JAVA 集合中又主要分 ... -
java基础 interface,接口与抽象类
2010-12-10 17:43 9521.JAVA 接口 在JAVA中,接口有两种 ... -
JAVA IO
2010-12-10 17:37 8601.JAVA IO系统简介 JAVA IO (i ...
相关推荐
本教程将探讨如何使用纯JSP(JavaServer Pages)和Servlet技术来实现文件上传,而不依赖Apache的文件上传组件,如Commons FileUpload。 首先,我们需要了解JSP和Servlet的基本概念。JSP是用于创建动态网页的Java...
在Java Web应用中,无论是简单的表单提交还是复杂的文件上传需求,Apache文件上传组件都能提供强大的支持。 标题中提到的"Apache文件上传组件jar包"实际上是指Apache Commons FileUpload库,它是一个开源项目,是...
使用fileupload组件实现文件上传功能 FileUpload组件是Apache提供的一款文件上传组件,能够帮助我们轻松实现文件上传功能。下面我们将详细介绍使用FileUpload组件实现文件上传功能的步骤和要点: 首先,需要引入两...
本实现抽取了apache commons.fileupload的最基本代码,组合成一个简单的文件上传组件,对parseRequest方法进行了改进,对于文件,直接存储到指定的上传目录,加快了上传速度。使用本程序时,注意上传端的参数设置,...
在描述中提到了与JSP SmartUpload的比较,SmartUpload也是一个广泛使用的文件上传库,但Apache上传组件可能提供了类似的特性,并且在某些方面可能具有更好的性能或易用性。 Apache上传组件的核心功能包括: 1. **...
Apache文件上传组件工作流程,希望对大家有帮助
本文档主要介绍了 Apache Commons FileUpload 组件的应用指南,旨在帮助开发者快速了解和使用该组件实现文件上传功能。 一、为什么需要文件上传组件? 几乎每一个 Web 应用中都需要为用户提供文件上传的功能,例如...
本篇文章将深入探讨Apache Commons FileUpload组件的使用,以及在Java Web环境中如何进行文件上传。 首先,Apache Commons FileUpload组件是一个专门处理HTTP请求中的多部分/形式数据(通常用于文件上传)的库。它...
Apache Commons FileUpload是Java社区广泛使用的文件上传组件,它允许开发者轻松地处理HTTP请求中的多部分表单数据,包括文件上传。然而,对于云存储的集成,我们通常需要结合云服务商提供的SDK,比如腾讯云的Java ...
Apache Commons FileUpload 是一个强大的 Java 库,专为处理 HTTP 请求中的文件上传而设计。它遵循 RFC1867 规范,使得在服务器端处理文件上传变得简单易行。以下是对 FileUpload 组件的详细解释及其应用指南: 1. ...
Apache Commons FileUpload组件是Java领域处理文件上传的常用工具库,它使得开发者能够轻松地处理HTTP协议中的多部分表单数据。本篇文章将深入探讨Apache FileUpload的工作原理和使用方法。 1. **多部分表单数据** ...
在创建一个基于Apache Commons FileUpload的文件上传组件时,通常会包含以下步骤: 1. 创建`DiskFileItemFactory`实例。 2. 使用工厂创建`ServletFileUpload`实例,设置大小限制。 3. 解析`HttpServletRequest`对象...
"java文件上传组件包"正是这样一套工具集,旨在简化Java开发中的文件上传流程。 在Java中处理文件上传,主要涉及以下知识点: 1. **Servlet API**:在服务器端,Servlet API是处理HTTP请求的基础。`javax.servlet....
总结,JSP文件上传组件通常涉及JSP页面设计、Servlet处理以及第三方库如Apache Commons FileUpload的使用。理解这些知识点,开发者就能构建出健壮且安全的文件上传功能。在实际应用中,务必注意文件上传的安全性,...
以上就是关于“JAVAWeb文件上传组件”的基本介绍,包括Apache Commons FileUpload和Commons IO的作用以及它们在Struts2框架中的使用。通过理解这些知识点,开发者可以有效地实现在Java Web应用中处理文件上传的需求...
在Java环境中,为了简化文件上传的复杂性,通常会使用JavaBean组件来处理文件上传的操作。本文将详细讲解“JSP文件上传JavaBean组件”的相关知识点。 首先,理解JavaBean组件。JavaBean是一种符合特定规范的Java类...