Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File upload Struts2-文件上载:检测文件大小错误_File Upload_Struts2_Action - Fatal编程技术网

File upload Struts2-文件上载:检测文件大小错误

File upload Struts2-文件上载:检测文件大小错误,file-upload,struts2,action,File Upload,Struts2,Action,我已经使用Struts2实现了一个上传实用程序。我已经通过编程方式在action类中签入setFileContentType()方法来限制上载特定的文件类型 剩下的一个问题是,如果上传的文件超过最大文件大小设置,则向用户显示自定义错误页面 我对此进行了研究,了解了验证拦截器应该如何与返回的“输入”结果一起使用。然而,我仍然不能把所有的部分放在一起 我的最终目标是:如果用户试图上传一个大文件,我想显示一个带有我自己错误消息的新页面 有什么建议吗 更新 我的struts.xml中有以下配置: <

我已经使用Struts2实现了一个上传实用程序。我已经通过编程方式在action类中签入setFileContentType()方法来限制上载特定的文件类型

剩下的一个问题是,如果上传的文件超过最大文件大小设置,则向用户显示自定义错误页面

我对此进行了研究,了解了验证拦截器应该如何与返回的“输入”结果一起使用。然而,我仍然不能把所有的部分放在一起

我的最终目标是:如果用户试图上传一个大文件,我想显示一个带有我自己错误消息的新页面

有什么建议吗

更新 我的struts.xml中有以下配置:

<action name="FileUpload" class="common.FileUpload">
<interceptor-ref name="fileUpload"/>
  <result name="success">common/FileUpload/FileUpload.jsp</result>
  <result name="UploadResult">common/FileUpload/FileUploadResult.jsp</result>
</action>

common/FileUpload/FileUpload.jsp
common/FileUpload/FileUploadResult.jsp
我知道上面的配置缺少验证拦截器,以防我想要检测文件大小错误。问题是,我不确定这一点如何发挥作用


谢谢

FileUpload有一个filesize参数,您可以在配置中使用它

    <interceptor-ref name="fileUpload">
        <param name="maximumSize">50</param>
    </interceptor-ref> 

50
如果要提供自定义消息,可以在此处设置

struts.messages.error.file.too.large

在上载的文件太大时发生,如 最大尺寸

执行您的操作
ValidationAware
,如果Struts2遇到此错误,您的
addFieldError
将被调用以通知您该错误,其中
key
struts.messages.error.file.too.large
和您在属性文件中定义的消息,调用
addFieldError
后,您可以采取必要的操作


上载文件时,FileUploadInterceptor还将对文件或文件类型、大小运行验证,如果操作实现了ValidationWare,则它将通过调用addFieldError回调方法在该操作中设置验证消息

我的问题不在于设置文件大小。我已经知道如何设置文件大小和所有内容。我的问题是“如果用户上载的文件大于设置的文件大小,如何捕获错误,如何显示自定义页面/错误消息”