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

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拦截器并不能过滤上传的文件类型,只能处理大小过滤。

  1. <interceptor-refname="defaultStack"/> 
  2. <!-- 限制文件上传大小和类型 --> 
  3. <interceptor-refname="fileUpload"> 
  4.     <paramname="maximumSize">10485760</param> 
  5.     <paramname="allowedTypes"> 
  6.         application/msword,application/pdf,application/zip 
  7.     </param> 
  8. </interceptor-ref> 
  1. <interceptor-ref name="defaultStack"/>  
  2. <!-- 限制文件上传大小和类型 -->  
  3. <interceptor-ref name="fileUpload">  
  4.     <param name="maximumSize">10485760</param>  
  5.     <param name="allowedTypes">  
  6.         application/msword,application/pdf,application/zip  
  7.     </param>  
  8. </interceptor-ref>  



如果不使用缺省的拦截器,则action中的属性不能正确赋值。而使用后,拦截类型不起作用。网上说缺省拦截器中已经包含了fileUpload拦截器。那么这样配置就是做了两次拦截。通过查找资料和尝试,如下配置的情况下可以实现文件类型拦截。
  1. <interceptor-refname="defaultStack"> 
  2.     <!-- 配置允许上传的文件类型,多个用","分隔 --> 
  3.     <paramname="fileUpload.allowedTypes"> 
  4.         application/msword,application/pdf,application/zip 
  5.     </param> 
  6.     <!-- 配置允许上传的文件大小,单位字节 --> 
  7.     <paramname="fileUpload.maximumSize">10485760</param> 
  8. </interceptor-ref> 
  1. <interceptor-ref name="defaultStack">  
  2.     <!-- 配置允许上传的文件类型,多个用","分隔 -->  
  3.     <param name="fileUpload.allowedTypes">  
  4.         application/msword,application/pdf,application/zip  
  5.     </param>  
  6.     <!-- 配置允许上传的文件大小,单位字节 -->  
  7.     <param name="fileUpload.maximumSize">10485760</param>  
  8. </interceptor-ref> 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值