2016-09-02 2 views
0

Die UploadedFile ist null, wenn ich auf die Befehlsschaltfläche geklickt habe. Was ist los mit dir? in Form Tag eingefügt i den Code: enctype = "multipart/form-data"Die UploadedFile ist null, Primefaces

<h:form enctype="multipart/form-data"> 
    <p:fileUpload mode="simple" value="#{b_cargar_tbl.file}" /> 
     <p:commandButton actionListener="#{b_cargar_tbl.upload()}" value="Send" ajax="false" /> 
</h:form> 

Der Code of bean ist:

private UploadedFile file; 

public UploadedFile getFile() { 
    return file; 
} 

public void setFile(UploadedFile file) { 
    this.file = file; 
} 

public void upload() { 
    if(file != null) { 
     FacesMessage message = new FacesMessage("Succesful", file.getFileName() + " is uploaded."); 
     FacesContext.getCurrentInstance().addMessage(null, message); 
    } 
} 

Die web.xlm

<context-param> 
    <param-name>primefaces.UPLOADER</param-name> 
    <param-value>auto|native|commons</param-value> 
</context-param> 
<filter> 
    <filter-name>PrimeFaces FileUpload Filter</filter-name> 
    <filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>PrimeFaces FileUpload Filter</filter-name> 
    <servlet-name>Faces Servlet</servlet-name> 
</filter-mapping> 

Antwort

0

Diese Lösung: Add Atribute fileUploadListener in p:fileUpload und erstellen Sie in Ihrer Managed Bean Klassenmethode mit einem Parameter Listener FileUploadEvent

Beispiel:

<p:commandButton actionListener="#{b_cargar_tbl.upload()}" value="Send" 
fileUploadListener="#{b_cargar_tbl.upload}" ajax="false" /> 

in Ihrer verwalteten Bean hinzufügen Methode:

public void upload(FileUploadEvent event) { 
     System.err.println("event.getFile().getFileName() = " + event.getFile().getFileName());  
     try { 
      copyFile(event.getFile().getFileName(), event.getFile().getInputstream()); 
     } catch (Exception ex) { 
      ex.printStackTrace(); 
     } 

    } 
+0

ich die Lösung gefunden: In der web.xml gibt es 3 Werte, i konfiguriert "auto" und funktionieren : primefaces.UPLOADER auto | nativer | commons

Verwandte Themen