t: inputFileUpload не отправляет форму при отправке большого файла

Я использую компонент загрузки файлов из томагавка, как показано ниже:

<t:inputFileUpload id="uploadFile" storage="file" size="60" value="#{"bean.uploadedFile}" />

web.xml имеет фильтр, определенный как

  <filter>
        <filter-name>Extensions Filter</filter-name>
        <filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
        <init-param>
            <param-name>uploadMaxFileSize</param-name>
            <param-value>5g</param-value>
        </init-param>
        <init-param>
            <param-name>uploadThresholdSize</param-name>
            <param-value>5m</param-value>
        </init-param>
    </filter>

Кроме того, тип кодировки формы устанавливается как "multipart/form-data" и отправляется с помощью "h:commandButton".

Теперь, когда я предоставляю файл размером более 1 ГБ, отправка формы вообще не происходит. Кроме того, я не вижу никаких ошибок/исключений на консоли. Файлы размером менее 1 ГБ загружаются успешно.

Еще одно странное поведение: если я уменьшаю «uploadMaxFileSize» до «3g», даже файл размером 1 ГБ не загружается, но 512 МБ загружается успешно.

Я борюсь с этим в течение нескольких дней. Пожалуйста, дайте мне знать, если кто-нибудь знает об этом.


person A.G.    schedule 11.09.2014    source источник
comment
Лимит POST также зависит от используемого контейнера. В вопросе отсутствует информация о внедрении/версии контейнера.   -  person BalusC    schedule 11.09.2014
comment
Сервер приложений — JBoss 7.2.0. Версия JSF — JSF 2.0 JDK — 1.7   -  person A.G.    schedule 11.09.2014
comment
Где мне нужно искать лимит POST, указанный для JBoss?   -  person A.G.    schedule 11.09.2014
comment
Просто для информации: JSF 2.0 не является правильной информацией о внедрении/версии JSF. Это просто спец. Правильный пример внедрения/версии, например. Мохарра 2.1.9. То же самое относится и к JDK 1.7, для которого правильным примером реализации/версии является Oracle JDK 1.7.0_55.   -  person BalusC    schedule 11.09.2014
comment
О да, спасибо. Я использую myfaces-2.1.8   -  person A.G.    schedule 11.09.2014
comment
h:inputFile был представлен только в JSF 2.2. Почему это упоминается в названии вопроса?   -  person BalusC    schedule 11.09.2014
comment
пробовал только с 2.2, там столкнулся с той же проблемой, но да, для ясности я уберу это из вопроса.   -  person A.G.    schedule 11.09.2014
comment
Давайте продолжим обсуждение в чате.   -  person A.G.    schedule 11.09.2014


Ответы (1)


Укажите uploadMaxFileSize в МБ, а не в ГБ. Если я укажу его на 2000 м, он правильно подхватит и разрешит загружать файлы до 2 ГБ, но если то же значение указано как 2 г, он не работает.

Это может быть ошибка в компоненте t:inputFileUpload относительно того, как они проверяют размер файла.

person A.G.    schedule 12.09.2014