2013-06-27 10 views
8

Desidero mostrare il file caricato sotto il componente fileUpload dopo aver caricato il file. Come impostazione predefinita mostra semplicemente il file quando lo scelgo, ma dopo aver premuto il pulsante di caricamento il nome del file scompare. Ho controllato tutti gli attributi del tag fileUpload ma non ho trovato nulla ad esso correlato.File di caricamento di PrimeFaces che mostra il nome del file dopo il caricamento

modifica: Grazie Daniel, la tua soluzione funziona bene, ma sai che outputText è un testo esterno sotto il fileUploader mi piacerebbe sapere se PrimeFaces ha una soluzione per mostrare il file quando viene caricato come mostra dopo aver scelto il file come l'immagine qui sotto voglio vedere il nome del file anche dopo aver caricato in questo modo:

enter image description here

risposta

7

il posto giusto un <h:outputText e riempirlo con il nome del file dal chicco dopo l'e aggiornarlo con il tuo p:fileUpload

piace questo

<h:form prependId="false" enctype="multipart/form-data"> 
    <p:fileUpload update="@form" mode="advanced" auto="true" 
     fileUploadListener="#{myBean.myFileUpload}"/> 
    <h:outputText value="#{myBean.myFileName}"/>  
</h:form>         

Dentro il bean:

public void myFileUpload(FileUploadEvent event) { 
    myFileName = FilenameUtils.getName(event.getFile().getFileName()); 
} 

anche dare un'occhiata al seguente BalusC risposta: event.getFile().getFileName() is returning filename with complete path in JSF2.0 with PrimeFaces 3.5

+0

mente di usare 'FilenameUtils # getName()' per colmare il bug di sicurezza che alcuni browser inviare erroneamente il percorso completo del client lungo il nome file: http://stackoverflow.com/questions/15728320/event-getfile-getfilename-is-returning-filename-with-complete-path-in-jsf2-0/15729327#15729327 – BalusC

+0

Grazie, @BalusC – Daniel