我正在使用primefaces 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();
}
答案 0 :(得分:0)
最好的方案是更新primefaces版本,因为你可以在版本5.3&gt;中使用顺序属性。
Sequential attribute to 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}"/>
但如果你不能,你可以尝试这样的事情: