基本上,我有一个fileUploader,我想一次做多个文件。当我单击上传包含2个或更多文件时,它会运行一次事件处理程序,然后停止,而不是再次为其余文件运行它,即使它在页面上的队列中显示它们。
<h:panelGroup>
<h:panelGrid columns="3" >
<h:outputText value="Attach Files:"/>
<p:fileUpload allowTypes="/(\.|\/)(doc|docx|xls|xlsx|pdf)$/" mode="advanced" multiple="true" sizeLimit="30000000" auto="true" fileUploadListener="#{requestPart.handleFileUpload}" update="messages"/>
<p:messages id="mgs" showDetail="true"/>
</h:panelGrid>
</h:panelGroup>
我的事件处理程序代码如下
private List<UploadedFile> uploadedFileList = new ArrayList<UploadedFile>();
public void handleFileUpload(FileUploadEvent event) throws NotSupportedException, SystemException, SQLException
{
System.out.println("Uploading Request Part files....");
UploadedFile file = event.getFile();
uploadedFileList.add(file);
FacesMessage msg = new FacesMessage("File attached successfully.", file.getFileName() + " is uploaded.");
FacesContext.getCurrentInstance().addMessage(null, msg);
}
有人能指出我的写作方向吗?据我所知,事件一次只有一个文件,而不是列表?
答案 0 :(得分:1)
哪个版本的PF? 我有与PF 5.0类似的问题。 试试这个:
public static synchronized void addToList{
uploadedFileList.add(file);
}
答案 1 :(得分:0)
我的解决方法是:
sequential="true"
添加您的fileUpload
和您的bean
private List<UploadedFile> archImagen;
public void handleFileUpload(FileUploadEvent event) {
archImagen.add( event.getFile());
}