- 浏览: 157402 次
- 性别:
- 来自: 厦门
文章分类
最新评论
-
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 8011.为什么使用连接池技术:数据库的建立和连接都是极其消耗系统资 ... -
私有的构造方法不能被实例化
2011-04-26 20:58 884v -
JDBC,JDBC连接数据库
2011-03-30 20:55 886package servlet_jdbc; import j ... -
接口和抽象类
2011-03-29 19:00 833java只能单继承,但接口可以实现多个接口。一个类可以继承一个 ... -
instance of用于判断对象是否相等或满足某种类型
2011-03-29 17:52 677静态方法可以被继承。但是,静态方法不能被覆盖,如果父类种的静态 ... -
复制对象用clone
2011-03-29 17:51 735飞 -
基本数据类型的包装类,数据对象
2011-03-29 14:35 831java为每一种数据类型提供一个包装类,这些类是:Charac ... -
== ,equals与matches,contains的区别
2011-03-29 13:43 3656public static void main(String ... -
二分查找法,数组的查找方法,二分法
2011-03-28 17:16 1163public static int binarySearch( ... -
获取数组中的最大值,求最大值
2011-03-28 15:16 1000public static void main(String ... -
随机字母,生成随机字符串,如何生成随机字母
2011-03-28 12:39 1171public static void main(String ... -
验证类型,如何验证一个数据类型, 类型验证转换
2011-03-24 17:32 892public static void main(String ... -
数组转化为字符串,用逗号分开。并去掉最后一个逗号
2011-03-24 11:37 10843public static void main(String[ ... -
保留两位小数点
2011-03-24 10:55 866public static void main(String[ ... -
upload文件上传,文件名全部变小写
2011-01-17 14:53 963我用MultipartFile上传文件的时候,文件名本身是大小 ... -
FileUtil (文件工具类),文件上传封装
2010-12-15 09:57 1525public class FileUtil { /* ... -
IO 流的分类
2010-12-14 16:39 1031IO的分类: 1.按流的方向分:按流的方向分可以分为输入流跟 ... -
Java集合框架
2010-12-14 10:32 625在JAVA 集合中又主要分 ... -
java基础 interface,接口与抽象类
2010-12-10 17:43 9061.JAVA 接口 在JAVA中,接口有两种 ... -
JAVA IO
2010-12-10 17:37 8091.JAVA IO系统简介 JAVA IO (i ...
相关推荐
纯jsp+servlet实现文件上传,没有使用apache上传组件
Apache文件上传组件工作流程,希望对大家有帮助
Apache文件上传组件jar包,我现在就在用这个,希望对大家有帮助。
本实现抽取了apache commons.fileupload的最基本代码,组合成一个简单的文件上传组件,对parseRequest方法进行了改进,对于文件,直接存储到指定的上传目录,加快了上传速度。使用本程序时,注意上传端的参数设置,...
Apache FileUpload文件上传组件API解析
java_文件上传组件_Apache_Commons_FileUpload_应用指南
由于JSF2.0标准实现没有提供文件上传组件,而实际应用中很多时候需要上传文件,为了方便开发,我做了一个基于JSF2.0的文件上传组件,上传使用的是Apache 的commons-fileupload组件,我已经将commons-fileupload-...
apache上传组件,借助临时文件夹传大文件。具体说明看网上吧。这里只是jar包和一个例子,例子没前台,就有接文件这1段。新手看看,看不懂也能用。
抽取了apache commons.fileupload的最基本代码,组合成一个简单的文件上传组件
找了几天,这个对我的帮助最大,希望对正学习fileupload的朋友有用。
文件上传下载组件 commons-fileupload-1.3-bin.zip 版本高些 org.apache.commons-fileupload-1.2.1.jar 版本低些 commons-io-1.2.jar 第三方的io的jar包 用途:java做上传,下载必备jar包。非常适用。
文件上传组件_Apache_Commons_FileUpload_应用指南.pdf
文件上传组件_Apache_Commons_FileUpload_应用指南.doc
在许多Web站点应用中都需要为用户提供通过浏览器上传文档资料的功能,例如,上传邮件附件、个人相片、共享资料等。...本章将详细介绍如何使用Apache文件上传组件,以及分析该组件源程序的设计思路和实现方法。
Apache组织提供的一个开源组件Commons-FileUpload,该组件可以方便的将“multipart/form-data”类型请求中的各种表单域解析出来,并实现一个或多个文件的上传,同时也可以限制上传文件的大小等内容。其性能十分优异,...
批量上传文件,完整的列子,部署既可以使用,
安装以后可以支持邮箱单文件以及多文件的上传。
是apache公司发行的开源组件。。。有兴趣的可以下
FileUpload 使得在你可以在应用和Servlet中容易的加入强大和高性能的文件上传能力 HttpClient Commons-HttpClient 提供了可以工作于HTTP协议客户端的一个框架. IO IO 是一个 I/O 工具集 Jelly Jelly是一个基于 ...