Primefaces文件上传多个工作像单一

时间:2015-02-04 03:20:44

标签: jsf primefaces

我在多种模式下有一个fileUpload:

<p:fileUpload fileUploadListener="#{perosnaDesapBean.handleFileUpload}" mode="advanced"        dragDropSupport="false"
 multiple="true" allowTypes="/(\.|\/)(gif|jpe?g|png)$/"
 label="Elegir Imágenes"
 cancelLabel="Cancelar"
 uploadLabel="Subir"
 update="messages"
/>

在我的托管bean中有句柄:

public void handleFileUpload(FileUploadEvent event) {      
    FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Succesful", event.getFile().getFileName() + " is uploaded.");
    FacesContext.getCurrentInstance().addMessage(null, message);
}

对于第一个上传的文件显示消息,但对于第二个没有任何内容。它运行一次事件处理程序。

我的web.xml文件:

<context-param>
  <param-name>primefaces.UPLOADER</param-name>
  <param-value>auto</param-value>
</context-param>
<filter>
 <filter-name>PrimeFaces FileUpload Filter</filter-name>
 <filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
</filter>

我的托管bean是@ConversationScoped,可能是为什么?我正在使用PF:5.1

感谢。

1 个答案:

答案 0 :(得分:0)

示例:PF 5.1,JSF 2.2,commons-io-2.4,commons-fileupload-1.3.1

班级定义:

@ManagedBean ( name="fileUploadManagedBean" )
@SessionScoped
public class FileUploadManagedBean implements Serializable {

    private static final long serialVersionUID = 1L;
    private UploadedFile fileImage;

    public UploadedFile getFileImage() {
        return fileImage;
    }

    public void setFileImage(UploadedFile fileImage) {
        this.fileImage = fileImage;
    }

    public void handleFileUpload(FileUploadEvent event) {
        FacesMessage msg = new FacesMessage("Succesful", event.getFile()
                .getFileName() + " is uploaded.");
        FacesContext.getCurrentInstance().addMessage(null, msg);
    }

}

XHTML定义:

<h:form enctype="multipart/form-data" >
                <p:growl id="msg" />
                <p:fileUpload value="#{fileUploadManagedBean.fileImage}"
                                invalidSizeMessage="Size off"
                                invalidFileMessage="Type off"
                                fileLimitMessage="Only 4 files"
                                mode="advanced" multiple="true" fileLimit="4" sizeLimit="1951200"
                                allowTypes="/(\.|\/)(gif|jpe?g|png)$/"
                                fileUploadListener="#{fileUploadManagedBean.handleFileUpload}"
                                update="msg" />
</h:form>

WEB.XML定义

<context-param>
        <param-name>primefaces.UPLOADER</param-name>
        <param-value>commons</param-value>
</context-param>
<filter>
 <filter-name>PrimeFaces FileUpload Filter</filter-name>
 <filter-class>
  org.primefaces.webapp.filter.FileUploadFilter
 </filter-class>
 <init-param>
             <param-name>thresholdSize</param-name>
             <param-value>1951200</param-value>
       </init-param>
       <init-param>
             <param-name>uploadDirectory</param-name>
             <param-value>/tmpImages</param-value>
       </init-param>
</filter>
<filter-mapping>
 <filter-name>PrimeFaces FileUpload Filter</filter-name>
 <servlet-name>Faces Servlet</servlet-name>
</filter-mapping>