您的位置:首页 > 编程语言 > Java开发

struts2文件上传类型限制 之 zip和rar文件类型

2012-08-21 17:38 411 查看

zip文件
firefox : application/octet-stream

chrome : application/octet-stream

oprea : application/zip

IE : application/x-zip-compressed

rar文件 firefox : application/x-rar-compressed

chrome : application/octet-stream

oprea : application/x-rar-compressed

IE : application/octet-stream

使用Struts2上传文件,其实使用的是apache的 commons-fileupload-1.1.jar

在实际使用的过程中,使用如下配置fileUpload拦截器并不能过滤上传的文件类型,只能处理大小过滤。

[html]
view plaincopyprint?

<interceptor-ref name="defaultStack"/> <!-- 限制文件上传大小和类型 --> <interceptor-ref name="fileUpload"> <param name="maximumSize">10485760</param> <param name="allowedTypes"> application/msword,application/pdf,application/zip </param> </interceptor-ref>

<interceptor-ref name="defaultStack"/>
<!-- 限制文件上传大小和类型 -->
<interceptor-ref name="fileUpload">
<param name="maximumSize">10485760</param>
<param name="allowedTypes">
application/msword,application/pdf,application/zip
</param>
</interceptor-ref>


如果不使用缺省的拦截器,则action中的属性不能正确赋值。而使用后,拦截类型不起作用。网上说缺省拦截器中已经包含了fileUpload拦截器。那么这样配置就是做了两次拦截。通过查找资料和尝试,如下配置的情况下可以实现文件类型拦截。

[html]
view plaincopyprint?

<interceptor-ref name="defaultStack"> <!-- 配置允许上传的文件类型,多个用","分隔 --> <param name="fileUpload.allowedTypes"> application/msword,application/pdf,application/zip </param> <!-- 配置允许上传的文件大小,单位字节 --> <param name="fileUpload.maximumSize">10485760</param> </interceptor-ref>

<interceptor-ref name="defaultStack">
<!-- 配置允许上传的文件类型,多个用","分隔 -->
<param name="fileUpload.allowedTypes">
application/msword,application/pdf,application/zip
</param>
<!-- 配置允许上传的文件大小,单位字节 -->
<param name="fileUpload.maximumSize">10485760</param>
</interceptor-ref>


-------------------------------------------------------------------------------

参考文档:http://www.blogjava.net/winderain/archive/2011/01/04/310971.html

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: