如何控制上传文件的类型与大小?
《1》手动编程代码过滤
自己制定类型,大小,然后取得上传文件的类型与大小进行判断
《
2》应用拦截器实现文件过滤
Struts2提供了文件上传拦截器fileUpload,只需要在该Action
中配置即可
<action name="upload" class="action.UploadAction">
<!-- struts2内置的文件上传拦截器 -->
<interceptor-ref name="fileUpload">
<!-- 配置允许上传文件类型 -->
<param name="allowedTypes">image/bmp,image/png,image/gif,image/jpg</param>
<!-- 配置允许上传文件大小 -->
<param name="maximumSize">2048000</param>
</interceptor-ref>
<!-- 配置默认拦截器栈 配置拦截器后默认拦截器栈就不会再自动设置 -->
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="fileUpload">
<!-- 配置允许上传文件类型 -->
<param name="allowedTypes">image/bmp,image/png,image/gif,image/jpg</param>
<!-- 配置允许上传文件大小 -->
<param name="maximumSize">2048000</param>
</interceptor-ref>
<!-- 配置默认拦截器栈 配置拦截器后默认拦截器栈就不会再自动设置 -->
<interceptor-ref name="defaultStack"></interceptor-ref>
<!-- 设置上传路径,需在服务器端应用下建立该文件夹 -->
<param name="savePath">/upload</param>
<result>/uploadSucc.jsp</result>
<!-- 上传过滤出错后自动返回input -->
<result name="input">/upload.jsp</result>
<param name="savePath">/upload</param>
<result>/uploadSucc.jsp</result>
<!-- 上传过滤出错后自动返回input -->
<result name="input">/upload.jsp</result>
</action>
u
注意:
–
fileUpload
拦截器两个参数:
•
allowedTypes:
指定文件类型,类型间用英文逗号隔开
•
maximumSize:
指定上传文件的最大值,单位为字节
–
必须显示的设置
defaultStack
拦截器
–
当发生不符合条件的错误时候,会自动返回
input
逻辑试图,所以必须配置
input
逻辑试
图。