传智播客Java web学习-文件上传组件的应用
来源:互联网 发布:云计算建设方案 编辑:程序博客网 时间:2024/06/05 23:44
今天学习Apache文件上传组件fileupload,张老师讲到,fileupload的新版本已经有了,学习他主要是学习他实现的原理,没必要追求最新的。他们的核心思想都是一样的,掌握了1.0版本的,通过查看1.2版本的帮助文档,基本上也就会使用1.2版本的了。我们要学习的是编程思想和编程技巧,完全不必关心版本的问题。
Apache文件上传组件,用于接受浏览器上传的文件。该组件有多个类组成,开发人员要掌握其中的三个类:DiskFileUpload,FileItem和FileUploadException,都在org.apache.commons.fileupload包中。
DiskFileUpload类是apache文件上传组件的核心类,我们要通过这个类与apache文件上传组件进行交互。下面是它的几个方法
1 setSizeMax方法,用于设置请求消息实体内容的最大允许大小,防止客户端上传过大的文件,单位为字节。如果请求消息中实体内容大小超过了该方法的设置值,将会抛出fileuploadException异常。
2 setSizeThreshold方法,Apache文件上传组件在解析和处理上传数据的每个字段的内容时,需要临时保存解析出的数据。java虚拟机默认可以使用的内存空间是有限的,超出限制就会发生“java.lang.OutOfMemoryError”错误。如果上传文件过大,内存中无法保存该文件,Apache文件上传组件将用临时文件来保存这些数据。该方法用于设置是否使用临时文件保存解析出的数据的那个临界值。传入参数的单位是字节。public void setSizeThreshold(int sizeThreshold)
3 setRepositoryPath方法,用于设置临时文件的存放目录,这里要求使用绝对路径。 public void setRepositoryPath(String repositoryPath)
public void setSizeMax(long sizeMax)
4 parseRequest方法 ,是对http请求消息的进行解析的入口方法,如果请求消息中实体内容的类型不是“multipart/form-data”,该方法将抛出FileUploadException异常。该方法解析出form表单中每个字段的数据,并将他们分别包装成独立的FileItem对象,然后将这些FileItem对象加入到一个List类型的集合对象中返回。
public List parseRequest(HttpServletRequest req )
还有一个重载的方法
public List parseRequest(HttpServletRequest req,int sizeThreshold,long sizeMax,String path),该方法集中处理上述所有方法的功能。
5 isMultipartContent方法,该方法用于判断请求消息中的内容是否是“multipart/form-date”类型,是即返回true,否则返回false,它是一个静态方法。
public static final boolean isMultipartContent(HttpServletRequest req)
6 setHeaderEncoding 方法,对于浏览器上传给web服务器的各个表单字段的描述头内容,Apache文件上传组件需要将他们转换成字符串形式返回。该方法用于设置转换时所使用的字符集编码。参数encoding用于指定字符集编码
public void setHeaderEncoding(String encoding)
FileItem 类,用于封装单个表单字段元素的数据,一个表单字段元素对应一个FileItem对象,通过调用FileItem对象的方法可以获得表单字段元素的数据。他实际上是一个接口,并继承了Seralizable接口,以支持序列化操作。我们使用的是该接口的一个实现类,使用FileItem接口类型对他进行引用和访问。下面是FileItem的几个方法。
1.isFormField方法 用于判断FileItem封装的数据是属于一个普通表单字段,还是一个文件表单字段。普通表单字段返回true,否则返回false。
public boolean isFormField()
2.getName方法,用于获得文件上传字段的文件名。如果FileItem对应的是普通表单字段,getItem方法将返回null。
public String getName()
3 getFieldName方法 ,用于返回表单字段元素的name属性值
public String getFieldName()
4write方法,用于将FileItem中保存的主题内容保存到某个指定的文件中。
public void write(File file)
5 getString方法,用于将FileItem中保存的内容作为一个字符串返回。
public String getString()
public String getString(String encoding)//使用指定的字符集编码
6 getContentType方法 用于获得上传文件的类型,如果FileItem对应的是普通表单字段,则返回null。
public String getContentType()
7 isInMemory 方法 ,用于判断FileItem封装的主体内容存放的位置,如果存储在内存中则返回true,存储在临时文件中则返回false。
public boolean isInMemory()
8 delete方法 用来情况FileItem中存放的主体内容,如过保存在临时文件中,将删除临时文件。
public void delete()。
- 传智播客Java web学习-文件上传组件的应用
- 文件上传组件的应用
- java web应用文件无法上传的一个原因
- Java Web笔记:文件上传——SmartUpload上传组件
- 文件上传组件的应用与编写
- 文件上传组件的应用与编写
- 文件上传组件的应用与编写
- java web的文件上传
- java web文件的上传
- Web应用文件上传
- Java文件上传组件
- web 文件上传组件 Plupload
- Java Web笔记:文件上传——commons-FileUpload组件
- 一个java上传文件的组件
- 一个java上传文件的组件
- Java 文件上传组件 Apache Commons FileUpload 应用
- Java 文件上传组件 Apache Commons FileUpload 应用
- Java 文件上传组件 Apache Commons FileUpload 应用指南
- 装箱的概念
- 使用PostSharp进行AOP框架设计:从一个简单的原型
- 使用.NET进行WAP开发
- Portal产品介绍--开放源码Portal产品
- gem更新出错时候的解决办法
- 传智播客Java web学习-文件上传组件的应用
- 提高生活幸福感的13个方法
- Eval和Bind
- 看懂乙肝两对半不求人
- Ubuntu 8.04下架设流媒体服务器
- mangos新手教程 - 服务器配置文件中文说明
- was5.1 补丁安装命令实例
- bboss-aop 实践(1) xml配置文件语法
- 交换机相关术语