2013-06-27 3 views
8

Я хочу показать загруженный файл ниже файла fileUpload после загрузки файла. По умолчанию он просто показывает файл, когда я его выбираю, но после того, как я нажал кнопку загрузки, имя файла исчезает. Я проверил все атрибуты тега fileUpload, но не смог найти ничего связанного с ним.PrimeFaces fileUpload, показывающий имя файла после загрузки

Редактировать: Спасибо Даниэль, ваше решение работает хорошо, но вы знаете, что outputText является внешним текстом в файле fileUploader. Я хотел бы знать, имеет ли в PrimeFaces решение для отображения файла при его загрузке, как показано после выбора файла как на картинке ниже я хочу видеть имя файла и после загрузки, как это:

enter image description here

ответ

7

Просто поместите <h:outputText и заполнить его с именем файла из фасоли после того, и обновлять его с вашим p:fileUpload

вот так

<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>         

Внутри вашего боба:

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

Также обратите внимание на следующий BalusC ответ: event.getFile().getFileName() is returning filename with complete path in JSF2.0 with PrimeFaces 3.5

+0

Ума использовать 'FilenameUtils # GetName()', чтобы устранить ошибку безопасности, некоторые браузеры неверно отправить полный путь на стороне клиента по имени файла: http://stackoverflow.com/questions/15728320/event-getfile-getfilename-is-returning-filename-with-complete-path-in-jsf2-0/15729327#15729327 – BalusC

+0

Спасибо, @BalusC – Daniel