2013-06-04 2 views
1

Если я попытаюсь загрузить файл размером более 2 МБ, его ошибка-ed.Плагин для плагинов Struts 2 - загрузить файл размером более 2 МБ

Я нашел на веб-сайте apache: «Существуют два отдельных ограничения размера файла. Сначала это struts.multipart.maxSize, который поступает из файла Struts 2. default.properties. Этот параметр существует по соображениям безопасности, чтобы запретить злоумышленнику загружая чрезвычайно большие файлы для архивирования вашего дискового пространства на сервере. Этот параметр по умолчанию составляет примерно 2 мегабайта и должен быть скорректирован на максимальный размер файла (максимум 2 гигабайта), который вам понадобится для получения рамки «

Так что я обнаружил, что эту проблему можно решить, добавив тег с желаемым максимальным пределом <constant name="struts.multipart.maxSize" value="1000000" /> в файле struts.xml.

Мы используем struts2-convention-plugin, поэтому у нас нет struts.xml. Так что я не был уверен, где определить этот максимальный размер файла ...

Пожалуйста, дайте мне знать, если кто-нибудь из вас сталкивался с этим ..

Цените за вашу помощь.

ответ

1
  1. Вы можете определить максимальный размер в Struts.xml (multipart.maxSize, как вы сказали), чтобы ограничить общий перевод для каждого многопрофильного запроса;

  2. Вы можете также определить размер файла для FileUpload перехватчик (по умолчанию 2MB), как на глобальном уровне к пакету, и для одного действия (при настройке этого параметра для этого перехватчика в <action> теге в struts.xml, или Комментирование его внутри действий при использовании плагина Convention:

    <interceptor-ref name="fileUpload"> 
        <param name="maximumSize">10485760</param> 
    </interceptor-ref> 
    

Это означает, что если вы, например, настроите общий размер мультиплексора 20 МБ, максимальный размер файла 4 МБ, вы сможете выполнить множественную загрузку 5 файлов по 4 МБ за один запрос;

Больше информации здесь: https://stackoverflow.com/a/15968166/1654265


Тем не менее, ваша проблема является без проблем;

использованием Convention плагин не означает, что вы не имеют распорки.xml; это означает, что

  • вы банку использование аннотаций в действиях
  • вы может избежать с помощью struts.xml;
  • когда некоторые распорки конфигурации не действия, связанные, как multipart.maxSize, глобальные отображения (результаты, исключение, пользовательский перехватчик стек и т.д.) требуются, вы совершенно может использовать struts.xml (создать его, если этого не было до этого момента).

Нигде в Convention Plugin Documentation, упоминается, что это взаимоисключающие к struts.xml (вместо того, чтобы, если вы пытаетесь найти на этой странице «struts.xml», вы найдете несколько случаев)

1

Вы также должны изменить файл server.xml под conf в папке apache. Найдите connector тег, который вы используете, и добавить то, что maxPostSize вы хотите, в байтах:

<Connector port="8080" protocol="HTTP/1.1" 
      connectionTimeout="20000" 
      redirectPort="8443" 
      maxPostSize="2097152" /> 
Смежные вопросы