PrimeFaces uploadFile,尝试上传多个文件并停在一个文件上

时间:2014-07-17 16:50:49

标签: jsf primefaces

基本上,我有一个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);  

}

有人能指出我的写作方向吗?据我所知,事件一次只有一个文件,而不是列表?

2 个答案:

答案 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()); 
}