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类型的异常。并通过异常处理提示错误信息。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值