【问题标题】:Primefaces File Upload Multiple working like singlePrimefaces 文件上传多个像单个一样工作
【发布时间】:2015-02-04 03:20:43
【问题描述】:

我有一个多模式的文件上传:

<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

谢谢。

【问题讨论】:

  • 与问题无关:我可以看到这个上下文参数(primefaces.UPLOADER)这些天仍然很不稳定(以及 PrimeFaces 5.1)。它不适用于我以及我已经尝试过的其他参数值(例如commonsnative)。
  • 你有什么版本的 JSF?可能相关:stackoverflow.com/questions/20301314/…

标签: jsf primefaces


【解决方案1】:

示例: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>

【讨论】:

  • 虽然这可能会回答问题,但最好包括一些关于您在做什么的解释。
猜你喜欢
  • 2013-07-10
  • 1970-01-01
  • 2012-06-21
  • 1970-01-01
  • 2015-02-07
  • 1970-01-01
  • 2017-11-17
  • 1970-01-01
  • 2014-09-17
相关资源
最近更新 更多