Как указать maxInMemorySize в МБ или ГБ в конфигурации Spring - PullRequest
0 голосов
/ 12 сентября 2018

Я относительно новичок в Java и Spring.Я пытаюсь сделать приложение, где пользователь может загружать файлы размером до 2,5 ГБ.Поэтому я попытался установить это в 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';"

Я думаю, что эта ошибка, потому чтоЯ очень долго оцениваю стоимость.Как я могу указать это значение в МБ или ГБ?

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018

setMaxInMemorySize вызовет setSizeThreshold(int sizeThreshold) через org.apache.commons.fileupload.disk.DiskFileItemFactory, и я не думаю, что это может быть указано 'МБ'.Так что вам может понадобиться использовать другой FileItemFactory или кодировать его самостоятельно.

0 голосов
/ 12 сентября 2018

maxUploadSize не является строкой, и вы передаете ей строку, и, если вы не можете преобразовать ее в число, вы должны передать число, подобное следующему:

<bean id="multipartResolver"
        class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

        <property name="maxUploadSize">
            <value>100000</value>
        </property>
    </bean>

для неограниченного значения -1

вам просто нужно изменить maxUploadSize, и загруженные файлы все равно будут получены после суммы MaxInMemorySize, но они не будут сохранены в памяти.

...