file-upload - Struts 2 文件上传拦截器配置问题

标签 file-upload configuration struts2 interceptor interceptorstack

尝试在我的应用程序中配置 Struts 2 文件上传拦截器时遇到两个问题。我想更改参数 maximumSize (默认值是 2 MB,我需要它是 5 MB)和消息资源 struts.messages.error.file.too.large (应用程序语言环境是 pt_BR,所以消息是葡萄牙语,而不是英语)。

应用程序当前配置如下:

struts.properties

struts.locale=pt_BR 
struts.custom.i18n.resources=MessageResources

struts.xml
<package name="default" namespace="/" extends="struts-default">
    <interceptors>
        <interceptor name="login" class="br.com.probank.interceptor.LoginInterceptor"/>
        <interceptor-stack name="defaultLoginStack">
            <interceptor-ref name="login" />
            <interceptor-ref name="defaultStack"/>
        </interceptor-stack>
    </interceptors>

    <default-interceptor-ref name="defaultLoginStack" />
    ...
</package>

...
<package name="proposta" namespace="/proposta" extends="default">
    <action name="salvarAnexoProposta" method="salvarAnexoProposta" class="br.com.probank.action.AnexoPropostaAction">
        <interceptor-ref name="defaultLoginStack">
            <param name="fileUpload.maximumSize">5242880</param>
        </interceptor-ref>
        <result name="success">/jsp/listagemAnexosPropostaForm.jsp</result>
        <result name="input">/jsp/crudAnexoPropostaForm.jsp</result>
        <result name="error">/jsp/error.jsp</result>
        <result name="redirect" type="redirect">${redirectLink}</result>
    </action>
</package>

MessageResources.properties
...
struts.messages.error.file.too.large=O tamanho do arquivo...

我的 Action 实现和我的 JSP 代码没有什么特别之处。他们遵循发现的例子http://struts.apache.org/2.1.6/docs/file-upload-interceptor.html .当我尝试上传超过 5 MB 的文件时,应用程序会显示消息“请求被拒绝,因为其大小 (6229458) 超过了配置的最大值 (2097152)”——默认的文件上传消息具有默认的 maximumSize 值。

我试着把消息资源struts.messages.error.file.too.large在 struts-messages.properties 中,但此后消息没有改变。配置文件上传拦截器的正确方法是什么?我正在使用 Struts 2 2.1.7。提前致谢。

最佳答案

终于解决了整个难题! struts.xmlMessageResource.properties已正确配置。问题是 struts.multipart.maxSize .此值必须大于所需的上传限制(在我的应用程序中为 5242880),因此我将其设置为 10000000。如果 struts.multipart.maxSize值等于或小于 fileUpload.maximumSize Struts 2 用于上传的库在文件上传拦截器有机会完成其工作之前停止上传过程(并写入错误消息)。

关于file-upload - Struts 2 文件上传拦截器配置问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1445791/

相关文章:

.net - 如何防止 IIS 默认站点 web.config 文件被虚拟目录继承?

c# - .NET 程序集绑定(bind),我可以将一个程序集映射到另一个程序集中的版本吗?

java - :property not shown value Struts2

javascript - 如何在 Angular JS 中重置文件上传控件

php - 当用户上传文件超过限制时,PHP 会做什么?

javascript - 如何使用angularjs显示文件上传的进度条

c# - AppSettings.json 用于 ASP.NET Core 中的集成测试

java - 使用OGNL自定义struts2 textfield标签的值

java - 在 struts 中使用单个拦截器作为 default-interceptor-ref 是否正确?

php - 如何使用 mysql 刚刚分配的自动增量 id 重命名文件?