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

来源:互联网 发布:华为网盘网络错误 编辑:程序博客网 时间:2024/04/29 01:00

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?
  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> 
[html] view plaincopyprint?
  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拦截器。那么这样配置就是做了两次拦截。通过查找资料和尝试,如下配置的情况下可以实现文件类型拦截。
[html] view plaincopyprint?
  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> 
[html] view plaincopyprint?
  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> 

原创粉丝点击