2024年4月26日发(作者:)

DiskFileUpload

1.setSizeMax方法

setSizeMax方法用于设置请求消息实体内容的最大允许大小,以

防止客户端故意通过上传特大的文件来塞满服务器端的存储空间,单

位为字节。

2.setSizeThreshold方法

Apache文件上传组件在解析和处理上传数据中的每个字段内容时,

需要临时保存解析出的数据。因为Java虚拟机默认可以使用的内存空

间是有

限的(笔者测试不大于100M),超出限制时将会发生

“emoryError”错误,如果上传的文件很大,例

如上传800M的文件,在

内存中将无法保存该文件内容,Apache文件上传组件将用临时文

件来保存这些数据;但如果上传的文件很小,例如上传600个字节的

文件,显然

将其直接保存在内存中更加有效。setSizeThreshold方法用于设

置是否使用临时文件保存解析出的数据的那个临界值,该方法传入的

参数的单。

3. setRepositoryPath方法

setRepositoryPath方法用于设置setSizeThreshold方法中提到

的临时文件的存放目录,这里要求使用绝对路径。其完整语法定义如

下:

public void setRepositoryPath(String repositoryPath)

如果不设置存放路径,那么临时文件将被储存在""

这个JVM环境属性所指定的目录中,tomcat 5.5.9将这个属性设置为

/temp/”目录。

4. parseRequest方法

parseRequest 方法是DiskFileUpload类的重要方法,它是对

HTTP请求消息进行解析的入口方法,如果请求消息中的实体内容的类

型不是

“multipart/form-data”,该方法将抛出FileUploadException

异常。parseRequest 方法解析出FORM表单中的每个字段的数据,

并将它们分别

包装成独立的FileItem对象,然后将这些FileItem对象加入进一

个List类型的集合对象中返回。parseRequest 方法的完整语法定义如

下:

public List parseRequest(HttpServletRequest req)

parseRequest 方法还有一个重载方法,该方法集中处理上述所有

方法的功能,其完整语法定义如下:

parseRequest(HttpServletRequest req,int sizeThreshold,long

sizeMax,

String path)

这两个parseRequest方法都会抛出FileUploadException异常。

5. isMultipartContent方法

isMultipartContent方法方法用于判断请求消息中的内容是否是

“multipart/form-data”类型,是则返回true,否则返回false。

isMultipartContent方法是一个静态方法,不用创建

DiskFileUpload类的实例对象即可被调用,其完整语法定义如下:

public static final boolean

isMultipartContent(HttpServletRequest req)

6. setHeaderEncoding方法