Загрузка файла PrimeFaces без загрузки второго и последующих файлов - PullRequest
0 голосов
/ 08 мая 2018

Я использую простые лица 3.4.2.

Я пытаюсь загрузить несколько файлов, но выбран один раз для выбора, но прослушиватель вызывается для первого файла, а прослушиватель не вызывается для других файлов в строке.

Что может быть причиной этой проблемы?
Это связанная часть страницы JSF

<p:dialog id="uploadNcstFileDialog" closable="true"
        widgetVar="uploadFileWidget" header="file Upload" modal="true"
        resizable="false">
        <h:form id="uploadFileForm" prependId="false"
            enctype="multipart/form-data">
            <h:outputLabel value="Choose a file to upload" />
            <p:panel style="width:600px;height:200px;">
                <p:fileUpload
                    fileUploadListener="#{bulkSmsMainBean.handleFileUpload}"
                    mode="advanced" uploadLabel="Upload" cancelLabel="Stop"
                    label="Dosya Seç" allowTypes="/(\.|\/)(pdf|gif|jpe?g|doc(x)?|xls(x)?|msg)$/"
                    invalidFileMessage="#{msgs['docformat.error']}"
                    update=":bulkSmsDetailTabs:bulkSmsDocumentListForm:documentListDataTableId" />
                <p:commandButton styleClass="button-type4"
                    style="float:right;margin-top:22px" value="Cancel" position="right"
                    onclick="uploadFileWidget.hide();return false;" />
            </p:panel>
        </h:form>
    </p:dialog>

Это слушатель

public void handleFileUpload(FileUploadEvent event) {
    UploadedFile uploadedFile = event.getFile();
    String fileName = uploadedFile.getFileName();
    int pos = fileName.lastIndexOf('.');
    String ext = fileName.substring(pos + 1);

    if (uploadedFile.getFileName().contains("\\")) {
        fileName = fileName.substring(fileName.lastIndexOf('\\', fileName.length()) + 1);
    }


    loadDocumentList();
}

enter image description here

1 Ответ

0 голосов
/ 12 мая 2018

Лучшим сценарием является обновление версии простых лиц, потому что вы можете использовать атрибут sequential в версии 5.3>.

Последовательный атрибут для fileUpload - Primefaces Project

<p:fileUpload mode="advanced" dragDropSupport="true" multiple="true"
                          sequential="true"
                          label="Procurar XML" cancelLabel="Cancelar" uploadLabel="Importar"
                          allowTypes="/(\.|\/)(xml)$/" sizeLimit="100000"
                          fileUploadListener="#{doctosFiscaisImportarController.uploadFile}"/>

Но если вы не можете, вы можете попробовать что-то вроде этого:

Последовательные загрузки с помощью JavaScript

...