为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Spring 配置中以 MB 或 GB 为单位指定 maxInMemorySize

如何在 Spring 配置中以 MB 或 GB 为单位指定 maxInMemorySize

慕姐8265434 2021-09-15 14:30:05
我对 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 使用该属性类型,对您来说可能会更方便。


查看完整回答
反对 回复 2021-09-15
?
临摹微笑

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 数量,但它们不会存储在内存中。


查看完整回答
反对 回复 2021-09-15
?
慕虎7371278

TA贡献1802条经验 获得超4个赞

setMaxInMemorySize会打电话setSizeThreshold(int sizeThreshold)org.apache.commons.fileupload.disk.DiskFileItemFactory我认为不能指定“MB”。因此,您可能需要使用其他 FileItemFactory 或自己编写代码。


查看完整回答
反对 回复 2021-09-15
  • 3 回答
  • 0 关注
  • 627 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信