Struts2文件上传 —— 限制文件的大小及类型

来源:互联网 发布:mysql怎么查看表的字符 编辑:程序博客网 时间:2024/04/30 00:09

在文件上传的时候,有可能需要对文件的大小和类型做出限制。

Struts 2支持直接在fileUpload 拦截器上设置参数来进行限制。

 

在引用fileUpload 拦截器的时候,可以指定3 个参数(指定<param>子元素) :

allowedTypes

指定允许上传的文件的类型, 如果存在多种类型,以逗号隔开。注意:这里添的不是文件的扩展名, 而是对应的ContentType

maximumSize

指定允许上传的文件的最大字节数。

allowedExtensions

指定允许上传的文件的扩展名。

 

如果上传的文件不满足以上的参数指定的条件,则会跳转到一个叫input的<result>上, 一般input 都会指回到提交之前的页面,也就是文件上传页面。

<packagename="default"namespace="/"extends="struts-default">

   <actionname="upload"class="cn.itcast.user.action.FileUploadAction"

      method="upload">

      <!--FileUploadAction中传入上传文件的存放目录的参数值 -->

      <paramname="uploadPath">D:\</param>

      <!--引用fileUpload拦截器 -->

      <interceptor-refname="fileUpload">

          <!--设置单个上传文件的大小,单位字节 -->

          <paramname="maximumSize">20000000</param>

          <!--设置单个上传文件的扩展名为jpg,多个扩展名之间通过","号分隔 -->

          <paramname="allowedExtensions">.jpg</param>

          <!--设置单个上传文件的MIME类型,多个类型之间通过","号分隔 -->

          <paramname="allowedTypes">image/jpeg</param>

      </interceptor-ref>

      <!--当显示声明使用某一具体拦截器时,那么默认拦截器栈中的18个拦截器就不起作用了

      如果又要默认拦截器栈中的拦截器有作用的话,又需显示声明使用默认拦截器栈 -->

      <interceptor-refname="defaultStack"/>

      <resultname="input">/jsp/upload.jsp</result>

      <result>/jsp/success/upload_success.jsp</result>

   </action>

</package>

 

原创粉丝点击