Spring + DWR文件上传大小限制

时间:2013-06-22 19:28:56

标签: spring file-upload size multipart dwr

我有一个应用程序,可以使用MultiPartRequest或DWR将文件上传到应用程序中。

我有以下配置。

Web.xml中

<servlet>
    <servlet-name>nerp</servlet-name>
    <servlet-class>
        org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <init-param>
        <param-name>fileUploadMaxBytes</param-name>
        <param-value>5000</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>nerp</servlet-name>
    <url-pattern>/nerp/*</url-pattern>
</servlet-mapping>

<servlet-mapping>
    <servlet-name>nerp</servlet-name>
    <url-pattern>/dwr/*</url-pattern>
</servlet-mapping>

NERP-servlet.xml中

<beans:bean id="multipartResolver"
    class="com.resources.erp.util.ERPMultiPartResolver">
   <!--  one of the properties available; the maximum file size in bytes  -->
    <beans:property name="maxUploadSize" value="100000"/>
</beans:bean>

ERPMultiPartResolver

public class ERPMultiPartResolver extends CommonsMultipartResolver {
@Override
public boolean isMultipart(final HttpServletRequest request) {
    boolean isMultiPartBoolean = true;
    final String urlFromBrowserWithAppName = String.valueOf(request.getRequestURI());
    String urlFromBrowser = "";

    if(urlFromBrowserWithAppName != null) {
        urlFromBrowser = urlFromBrowserWithAppName.replaceAll(String.valueOf(request.getContextPath()),"");
    }
    if(urlFromBrowser.indexOf("dwr") > 0) {
        isMultiPartBoolean = false;
    }
    else {
        isMultiPartBoolean = super.isMultipart(request);
    }
    return isMultiPartBoolean;
}

}

我的MultiPartRequest相关上传被限制为maxUploadSize ERPMultiPartResolver属性中指定的大小。但我无法限制DWR文件上传的大小。

我尝试在web.xml中使用param-name fileUploadMaxBytes,但图像大小没有受到限制。

在项目中使用Spring 3.2.1和Dwr 3.0时,有人可以帮我解决如何通过DWR上传限制图像大小的问题吗?

我已查看链接

1 个答案:

答案 0 :(得分:0)

上述问题的答案是,不是按照我上面的方式在web.xml中声明 fileUploadMaxBytes ,而是声明应该在您配置dwrContoller的地方。即。

 <dwr:controller id="dwrController" debug="true" >
    <dwr:config-param name="fileUploadMaxBytes" value="1048"/>
 </dwr:controller>

现在有了这个帮助,我可以将图像大小限制为1048字节。

之前我的dwrController配置如下所示

<dwr:controller id="dwrController" debug="true" />