如何在Struts2中上传两个不同的文件并验证它们的类型和大小?

时间:2016-02-12 10:47:55

标签: model-view-controller file-upload struts2 multifile-uploader struts-validation

我在jsp上有一个表单,它有两个文件输入,一个用于上传个人资料图片,另一个用于上传PDF文件。

我想验证

  • 图像输入应仅接受.jpeg或.png,其大小不应超过200KB。
  • PDF输入应仅为PDF,大小不应超过2MB。

如何以相同的形式为不同的文件添加不同的验证?

1 个答案:

答案 0 :(得分:0)

文件限制与请求相关。如果您需要应用两个不同的设置,则需要两个不同的请求(因此有两种形式),这显然不是所需的解决方案。

然后您可以通过以下方式轻松解决此问题:

  • struts.xml文件类型(图像类型,pdf)
  • struts.xml 2MB限制(两者中较高者)
  • 在操作validate()中,或在XML验证中,或在注释验证中,控件如“如果文件类型为图像且大小> 200KB,则引发错误”。< / em>的

编辑

  

顺便说一下,我通过编写自己的拦截器来做到这一点。

当然,如果你必须将这个逻辑应用于许多动作,那么自定义拦截器可以帮助你干。

确保您已了解验证的工作原理,并在Interceptor中添加字段错误,以防它失败,以便the INPUT result will be automatically returned by the Worflow Interceptor