今天试验Struts 2.2.1 文件上传,配置以下参数以后可以正常上传,但是有一个问题,就是无法针对文件大小过滤,也无法限制上传文件的mime类型,先看xml配置吧:
<action name="uploadAction" class="com.demo.upload.FileUpload"> <interceptor-ref name="defaultStack"></interceptor-ref> <interceptor-ref name="fileUpload"> <param name="allowedTypes">image/bmp,image/png,image/x-png,image/gif,image/jpeg,image/pjpeg</param> <param name="maximumSize">2000000</param> </interceptor-ref> <result name="input">/upload.jsp</result> <result>/uploaded.jsp</result> </action>
折腾来折腾去,最后解决了这个问题,原来需要按照以下方式配置才可以
<action name="uploadAction" class="com.demo.upload.FileUpload"> <interceptor-ref name="fileUpload"> <param name="allowedTypes">image/bmp,image/png,image/x-png,image/gif,image/jpeg,image/pjpeg</param> <param name="maximumSize">2000000</param> </interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref> <result name="input">/upload.jsp</result> <result>/uploaded.jsp</result> </action>
最大的变化就是将对defaultStack拦截器栈的引用放到了fileUpload拦截器的下方,问题随即解决,真是坑人啊。