我对 Java 和 Spring 比较陌生。我正在尝试制作一个应用程序,用户可以在其中上传最大 2.5 GB 的文件。因此,我尝试springapp-servlet.xml从我在某处阅读的内容中将其设置在文件中。<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="2500001000" /> <property name="maxInMemorySize" value="2500001000" /> <property name="defaultEncoding" value="utf-8" /></bean>但是,它给了我以下错误:"Failed to convert property value of type 'java.lang.String' to required type 'int' for property 'maxInMemorySize';"我认为这个错误是因为我的价值很长。如何以 MB 或 GB 为单位指定此值?
3 回答
宝慕林4294392
TA贡献2021条经验 获得超8个赞
Spring 提供了一个名为DataSize的类。如果您设置自己的配置类,您可以使用该类型而不是“int”。如果 Spring 使用该属性类型,对您来说可能会更方便。
临摹微笑
TA贡献1982条经验 获得超2个赞
maxUploadSize 不是字符串,您传递给它一个字符串,并且不能转换为数字,您必须传递这样的数字:
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize">
<value>100000</value>
</property>
</bean>
无限值是-1
您只需要更改 maxUploadSize 并且上传的文件仍然会超过 MaxInMemorySize 数量,但它们不会存储在内存中。
慕虎7371278
TA贡献1802条经验 获得超4个赞
setMaxInMemorySize
会打电话setSizeThreshold(int sizeThreshold)
,org.apache.commons.fileupload.disk.DiskFileItemFactory
我认为不能指定“MB”。因此,您可能需要使用其他 FileItemFactory 或自己编写代码。
添加回答
举报
0/150
提交
取消