基本上,我有一个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);
}
有没有人能指出我的写作方向?据我所知,该事件一次只是一个文件,从来没有列表?
哪个版本的PF?我有与PF 5.0类似的问题。试试这个:
public static synchronized void addToList{
uploadedFileList.add(file);
}
我的解决方案是:
sequential="true"
加入你的fileUpload
和你的豆
private List<UploadedFile> archImagen;
public void handleFileUpload(FileUploadEvent event) {
archImagen.add( event.getFile());
}