Struts2.2.1文件上传是无法进行文件过滤
跟没有拦截之前一样,什么类型的文件都可以上传这是怎么回事?<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="fileupload" extends="struts-default" namespace="/">
<action name="upload" class="com.chk.action.UploadAction">
<!-- 配置fileUpload的拦截器 -->
<interceptor-ref name="fileUpload">
<!-- 配置允许上传的文件类型 -->
<param name="allowedTypes">image/bmp,image/png,image/gif,image/jpeg</param>
<!-- 配置允许上传的文件大小 -->
<param name="maximumSize">2000</param> 
</interceptor-ref> 
<!-- 配置系统默认的拦截器 -->
<interceptor-ref name="defaultStack"/>
<param name="savePath">/upload</param>
<result name="input">/upload.jsp</result>
<result>/ok.jsp</result>
</action>
</package>
</struts>    

解决方案 »

  1.   

    现在的问题是
     <!-- 配置fileUpload的拦截器 -->
                <interceptor-ref name="fileUpload">
                    <!-- 配置允许上传的文件类型 -->
                    <param name="allowedTypes">image/bmp,image/png,image/gif,image/jpeg</param>
                    <!-- 配置允许上传的文件大小 -->
                    <param name="maximumSize">2000</param> 
                </interceptor-ref> 
                <!-- 配置系统默认的拦截器 -->
                <interceptor-ref name="defaultStack"/>有没有这个拦截器都一样,还是什么类型的文件都能上传
      

  2.   

    param name="allowedTypes">image/bmp,image/png,image/gif,image/jpeg</param>
    楼主在这个上传类中获取allowedTypes得到的是一个数组。遍历该数组
    进行判断然后判断文件的后缀是否等于allowedTypes里面的值