Отправить форму с загрузкой файла

Я хотел бы реализовать форму с загрузкой файлов. Я попробовал это.

<f:websocket channel="uploadProgress" scope="view" onmessage="updateProgressBar" />
<h:form id="form" enctype="multipart/form-data">

    <h:panelGrid columns="2" styleClass="new_table">
        ..................
    </h:panelGrid>

    <div class="row">
        <h:messages id="uploadMsgId" globalOnly="true" showDetail="false" showSummary="true"/>

        <h:inputFile id="fileToUpload" required="true" requiredMessage="No file selected ..." value="#{newProcedure.file}"/>
        <h:message showDetail="false" showSummary="true" for="fileToUpload"/>
        <h:commandButton value="Upload" action="#{newProcedure.upload()}">
            <f:ajax execute="@form" onevent="progressBar" render="@form"/>
        </h:commandButton>
        <div>
            <div id="progressBarId" width="250px;" height="23"/>
        </div>
    </div>            
    <h:commandButton styleClass="button" value="Create Procedure" action="#{newProcedure.addNewProcedure(1)}">
        <f:ajax render="@form" execute="@form"></f:ajax>
    </h:commandButton>&nbsp;
</h:form>

Я могу загрузить файл, когда нажимаю внутреннюю кнопку h:commandButton, но когда я нажимаю вторую кнопку, чтобы отправить форму с вложенным файлом, ничего не происходит. Есть идеи, почему это не работает? Также, если нет выбранного файла, как я могу отправить форму без прикрепленного файла? Мне нужно осуществить некоторые проверки?

0 ответов

Другие вопросы по тегам