Model view controller 如何在Struts2中上载两个不同的文件并验证其类型和大小?

Model view controller 如何在Struts2中上载两个不同的文件并验证其类型和大小?,model-view-controller,file-upload,struts2,multifile-uploader,struts-validation,Model View Controller,File Upload,Struts2,Multifile Uploader,Struts Validation,我在jsp上有一个表单,它有两个文件输入,一个用于上传个人资料图片,另一个用于上传PDF文件 我想证实这一点 图像输入应仅接受.jpeg或.png,且其大小不应超过200KB PDF输入应仅为PDF,大小不应超过2MB 如何在同一表单中对不同的文件进行不同的验证?文件限制与请求相关。如果需要应用两个不同的设置,则需要两个不同的请求(因此需要两个表单),这显然不是想要的解决方案 然后,您可以通过应用以下方法轻松克服此问题: 在struts.xml中文件类型(图像类型,pdf) 在struts

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

我想证实这一点

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

如何在同一表单中对不同的文件进行不同的验证?

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

然后,您可以通过应用以下方法轻松克服此问题:

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

编辑


顺便说一下,我是通过编写自己的拦截器来实现的

当然,如果您必须将此逻辑应用于许多操作,那么定制拦截器将帮助您完成


只要确保您了解了验证的工作原理,并在拦截器中添加字段错误以防失败,这样。

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

然后,您可以通过应用以下方法轻松克服此问题:

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

编辑


顺便说一下,我是通过编写自己的拦截器来实现的

当然,如果您必须将此逻辑应用于许多操作,那么定制拦截器将帮助您完成


只要确保您了解了验证的工作原理,并在拦截器中添加字段错误,以防验证失败。

谢谢Andrea。。。我知道我可以编写我的自定义业务逻辑来验证它们。但我在想,如果fileupload拦截器能够做到这一点。顺便说一下,我是通过编写自己的拦截器来实现的。谢谢Andrea。。。我知道我可以编写自定义业务逻辑来验证它们。但我在想,fileupload拦截器是否可以做到这一点。顺便说一下,我是通过编写自己的拦截器来实现的。你是指文件扩展名还是内容?你是指文件扩展名还是内容?