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

问题描述 投票:0回答:2

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

}

有没有人能指出我的写作方向?据我所知,该事件一次只是一个文件,从来没有列表?

jsf primefaces
2个回答
1
投票

哪个版本的PF?我有与PF 5.0类似的问题。试试这个:

    public static synchronized void addToList{
    uploadedFileList.add(file);
    }

0
投票

我的解决方案是:

sequential="true"加入你的fileUpload和你的豆

 private List<UploadedFile> archImagen;

 public void handleFileUpload(FileUploadEvent event) {
        archImagen.add( event.getFile()); 
}
© www.soinside.com 2019 - 2024. All rights reserved.