spring构值注入失效,CommonsMultipartResolver

J2EE 码拜 9年前 (2016-03-14) 1377次浏览
文件上传spring注入失效

<bean id="multipartResolver"  class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!-- one of the properties available; the maximum file size in bytes -->
        <property value="10000000" name="maxUploadSize"/>
    </bean>

跟踪代码,

  public void setMaxUploadSize(long maxUploadSize) {
        this.fileUpload.setSizeMax(maxUploadSize);
    }

传值依然为5120000。

解决方案

40

要获得流的长度,前提是字节流采用的是什么编码是吧?例如UTF-8的编码长度和IOS标准编码就要长些。所以需要先确定编码:

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
     <property name="defaultEncoding" value="UTF-8"/>     	<property name="maxUploadSize" value="10000000"/>
    	<property name="maxInMemorySize" value="20480000"/>
    	<property name="uploadTempDir" value="temp"/>
</bean>

接下来通过代码来证明本人的观点:
打开org.springframework.web.multipart.commons.CommonsFileUploadSupport类的源代码(在spring-web-4.2.4.RELEASE.jar包中),跳到第211行,

if (encoding != null && !encoding.equals(fileUpload.getHeaderEncoding())) {
}

fileUpload.getHeaderEncoding()就是配置的defaultEncoding编码,继续看此类的148-158行,假如没有配置defaultEncoding,则返回默认的编码——“ISO-8859-1”。
笔者上述配置值注入有效。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明spring构值注入失效,CommonsMultipartResolver
喜欢 (0)
[1034331897@qq.com]
分享 (0)