Размер файла Jsf inputFile

#jsf #file-upload #jsf-2

#jsf #загрузка файла #jsf-2

Вопрос:

У меня есть это поле входного файла в моей форме для загрузки файла.

     <h:form id="stammdaten" enctype="multipart/form-data">
<h:inputFile id="profileImage" value="#{stammdatenController.file}" />
</h:form>
  

Приведенный выше код загружает файл правильно. Но проблема в том, что если я выбираю файл размером более 1 МБ, он не загружается. Только файлы размером менее 1 МБ загружаются правильно.

Как я могу увеличить этот лимит загрузки файла до 2 МБ?

Редактировать: мой web.xml

 <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.xhtml</url-pattern>
    </servlet-mapping>
    <welcome-file-list>
        <welcome-file>index.xhtml</welcome-file>
    </welcome-file-list>

    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>

    <context-param>
        <param-name>primefaces.CLIENT_SIDE_VALIDATION</param-name>
        <param-value>true</param-value>
    </context-param>
    <context-param>
        <param-name>javax.faces.FACELETS_REFRESH_PERIOD</param-name>
        <param-value>0</param-value>
    </context-param>
    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
    </context-param>
    <context-param>
        <param-name>facelets.SKIP_COMMENTS</param-name>
        <param-value>true</param-value>
    </context-param>
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
  

и мой вспомогательный компонент:

 private Part file;

    public void upload() throws IOException{
        try (InputStream input = file.getInputStream()) {
            FileUtils.copyToFile(input, new File("/home/john/Pictures/uploads/test.jpg"));
        }
}
  

Комментарии:

1. Нулевая информация об используемом JSF ( h:inputFile было (было?) Так много проблем в Mojarra), нулевая информация об используемом сервере (и эти проблемы почти всегда связаны с сервером / конфигурацией), нулевая информация о сообщении об ошибке (вы выбираете файл и абсолютно ничего не происходит?). У вас есть multipart-config in web.xml ?

2. Я обновил свой вопрос дополнительной информацией. Просто примечание, я не делал никаких настроек сервера / конфигурации для загрузки файлов. И, если я отправляю форму, в журнале сервера нет ошибки, я перенаправляюсь на ту же страницу после отправки формы

3. Информация о сервере важна, поскольку все серверы имеют ограничение на размер записи, которое необходимо настроить с помощью настроек, специфичных для сервера. Однако 1 МБ — это довольно мало (конечно, если вы имели в виду МБ вместо Мб).

4.Я использую spring boot, встроенный в сервер tomcat. Поэтому я добавил spring.http.multipart.max-file-size=10Mb # Max file size. spring.http.multipart.max-request-size=10Mb # Max request size. и в web.xml Я также добавил тот же размер в соответствии с ответом ниже. Я также попробовал primefaces и столкнулся с той же проблемой размером 1 МБ

5. У меня есть полный проект на github github.com/shiblybcc/javaoutgoingerasmus/tree/3-way-join-table

Ответ №1:

Обновите web.xml :

  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
    <multipart-config>
        <max-file-size>put_your_desired_value</max-file-size>
        <max-request-size>also_here_request_size</max-request-size>
        <file-size-threshold>and_here_in_bytes</file-size-threshold>
    </multipart-config>
</servlet>
  

Комментарии:

1. К сожалению, это не работает. Я думаю, что мне здесь не хватает чего-то простого. После отправки формы страница просто обновляется. На самом деле он не отправляет форму на сервер.