如果我使用有效的注释(@MultipartConfig(maxFileSize=XXX)
),但web.xml
种类(<max-file-size>XXX</max-file-size>
)似乎仅在<file-size-threshold>
出现时才有效。
这似乎不对,我是对的吗?
编辑:当它工作时(因为我已经添加了file-size-threshold
标签)并且我上传了一个超过限制的文件,我得到的异常与使用注释时不同。绝对看起来很奇怪。
EDIT2:只是为了添加更多细节,当我通过注释设置最大文件大小时得到SizeLimitExceededException
,当我设置最大文件大小时得到FileSizeLimitExceededException
(带有0文件)大小阈值,使其工作)。这两个例外都打印了我在异常消息中设置的最大文件大小限制。
答案 0 :(得分:1)
实际上MultipartConfig的API文档指定了默认值0
。
public abstract int fileSizeThreshold
将文件写入磁盘的大小阈值
默认:强>
0
不幸的是,multipart-configType
(在web-common_3_0.xsd
中)未指定默认值:
<xsd:element name="file-size-threshold"
type="xsd:integer"
minOccurs="0"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
The size threshold after which an uploaded file will be
written to disk
</xsd:documentation>
</xsd:annotation>
</xsd:element>
我也无法在JSR 315中找到任何相关信息。虽然我们可以推断minOccurs="0"
暗示file-size-threshold
是可选的,但是当该元素不存在时,规范中没有任何内容描述预期的行为。所以这取决于供应商。
提示:试试<file-size-threshold>0<file-size-threshold>
提示2:如果它没有解决供应商的问题(尝试使用应用服务器问题跟踪器或官方问题跟踪器,无论您执行javax.servlet
{/ 1}他们使用)。不要使用&#34;错误&#34;这个词,而是使用诸如&#34;明智的默认值和#34;之类的术语。和#34;元数据互操作性&#34; (它会大大提高你的机会):D。