欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

jsp文件通常用common_29.jsp-动态生活之用Commons-FileUpload组件控制文件上传

发布时间:2025/3/19 49 豆豆
生活随笔 收集整理的这篇文章主要介绍了 jsp文件通常用common_29.jsp-动态生活之用Commons-FileUpload组件控制文件上传 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

sizeMax):设置请求信息实体内容的最大允许的字节数

★ public List parseRequest(HttpServletRequest req):

解析form表单中的每个字符的数据,返回一个FileItem对象的集合。

★ public static final boolean

isMultipartConent(HttpServletRequest req):

判断请求信息中的内容是否是“multipart/form-data”类型

★ public void setHeaderEncoding(String

encoding):设置转换时所使用的字符集编码

2. FileItem接口

FileItem是一个接口,用于封装单个表单字段元素的数据,一个表单字段元素对应一个FileItem对象,在应用程序中使用的是接口的实现类DiskFileItem类。FileItem接口提供的常用方法如下所示:

★ public boolean isFormFileld():

判断FileItem对象封装的数据类型。普通表单字段返回true,文件表单字段返回false

★ public String getName():获得文件上传字段中的文件名。普通表单字段返回null。

★ public String getFieldName():返回表单字段元素的name属性值。

★ public void write(File

file):将FileItem对象中保存的主体内容保存到指定的文件中。

★ public String getString :

将FileItem对象中保存的主体内容以一个字符串返回。其重载方法public String getString

(String encoding)中的参数用指定的字符集编码方式

★ public long getSize():返回单个上传文件的字节数

3.FileItemFactory接口与实现类

servletFileUpload对象的创建需要依赖于FileItemFactory工厂,将获得的上传文件FileItem对象保存至服务器硬盘。FileItemFactory接口的实现是DiskFileItemFactory,该类的常用方法如下:

★ public void setSizeThreshold(int

sizeThreshold):设置内存缓冲区的大小

★ public void setRepositoryPath(String

path):设置临时文件存放的目录。

五。在JSP中使用Commons-FileUpload组件实现文件上传的功能

以( 三) 中的页面作为文件上传页面,将表单提交到doUpload.jsp中

上面的代码完成了一个文件上传的功能,现在对上面的代码进行逐一分析:

1.在JSP文件中使用page指令导入Commons-FileUpload组件所需的类。

2.判断请求信息中的内容是否是multipart类型,如果是则进行处理。

3.通过FileItemFactory工厂对象实例化ServletFileUpload对象。

4.调用ParseRequest()将表单中字段解析成FileItem对象的集合。

5.通过迭代依次处理每个文件,如果是普通字段,通过getString()方法得到相应编导字符的值,该值与表单字段中的“name”属性对应。如果是文件字段,则通过File的构造方法构建一个指定路径名和文件名的文件,并通过FileItem对象的write()方法将上传文件的内容保存到文件中。

六。控制文件上传的类型

代码如下:

在上面代码中,用到了Arrays类,此类包含用于操作数组(如排序和搜索)的各种方法,通过Arrays类的asList()方法创建固定长度的集合,也就是得到允许文件类型的集合,然后通过集合的contains()方法匹配上传文件的后缀名,来判断文件类型是否在允许范围内。

七。控制文件上传的大小:

运行代码,如果提交的文件大小超出了设置要求,那么系统会返回错误信息。

在上面的代码中:创建临时文件目录路径,通过DiskFileItemFactory对象的setSizeThreshold()方法设置缓冲区大小,当上传文件大小超过缓冲区大小,则临时存储在通过DiskFileItemFactory对象的setRepository()

方法设置的临时文件目录路径中。同时通过ServletFileUpload对象的setSizeMax()限制了单个上传文件的字节数,如果超出设置的字节数,则会抛出一个FileUploadBase.SizeLimitExceededException类型的异常。并通过异常处理提示错误信息。

八。通过上面的代码,我们实现了在文件上传过程中对于上传文件类型,大小的设置,只允许向服务器上传指定类型的文件,使服务器更安全,避免服务器被破坏。控制上传文件的大小,节约服务器的空间,有效避免服务器的崩溃。

总结

以上是生活随笔为你收集整理的jsp文件通常用common_29.jsp-动态生活之用Commons-FileUpload组件控制文件上传的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。