手动实现文件过滤的方式虽然简单,但要书写大量代码,不利于程序的高层次解构,而且开发复杂。
struts2提供了一个文件上传的拦截器,通过配置该拦截器可以更轻松的实现文件过滤。struts2中文件上传
的过滤器是fileUpload,为了让该拦截器起作用,只需要在该Action中配置该拦截器引用即可。
配置fileUpload拦截器时,可以为其指定两个参数:
allowedTypes:该参数指定允许上传的文件类型,多个文件类型之间以英文逗号(,)隔开。
maximumSize:该参数指定允许上传的文件大小,单位是字节。
通过配置fileUpload的拦截器,可以更轻松的实现文件过滤,当文件过滤失败后,系统自动转入input逻辑
视图,因此必须为该Action配置名为input的逻辑视图。除此之外,还必须显示的为该Action配置defaultStack的
拦截器引用。
通过拦截器来实现文件过滤的配置文件如下:
<interceptor-ref name="defaultStack"/>
上面的拦截器过滤不仅过滤了文件的类型,也过虑了文件大小。上传文件的类型只能是图片文件,并且文件大小不能大于2000字节(当然,我们随时可以更改
到更大)。如果我们上传文件的文件太大,系统将转入input逻辑视图,也就是/upload.jsp页面。