2014-03-13 661 views
2

我有一个理解setMaxUploadSize方法的问题。我认为它应该限制文件大小。但是,如果将maxUploadSize设置为10个字节,仅用于测试目的,然后上载10bytes文件,则文件将被拒绝并引发MaxUploadSizeExceededException。CommonsMultipartResolver setMaxUploadSize限制文件大小或请求大小?

查看commons-fileupload的代码我明白它首先测试Content-Length标头。由于在我的情况下,内容长度为224,所以上传被拒绝。

所以我的问题是:请求体大小是有限的还是实际文件的大小?

回答

2

CommonsMultipartResolver是Jakarta Commons DiskFileUpload的MultipartResolver实现。 DiskFileUpload有两个字段: 1)sizeMax - 完整请求的最大允许大小。 2)fileSizeMax - 单个上传文件的最大允许大小。

是CommonsMultipartResolver实现maxUploadSize领域为:

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

这说明了你的异常的原因。

+0

谢谢。这也是我从源代码中了解到的。我很困惑,因为在Spring文档中有以下规范:'<! - 其中一个可用属性;最大文件大小(以字节为单位) - > 'http://docs.spring.io/spring/docs/3.0.0.M3/reference/html/ch16s08 html的 –