Вы можете получить загруженный файл через FileUploadEvent
.В PrimeFaces 4.x с Apache Commons FileUpload или в PrimeFaces 5.x с контекстным параметром primefaces.UPLOADER
, установленным на commons
, вы можете использовать UploadedFile#getContents()
, чтобы получить загруженный файл как byte[]
.
public void handleFileUpload(FileUploadEvent event) {
byte[] content = event.getFile().getContents();
// ...
}
В PrimeFaces 5.x с контекстным параметром primefaces.UPLOADER
, отсутствующим или установленным на auto
или native
при использовании JSF 2.2, тогда getContents()
вернет null
, поскольку не реализовано в NativeUploadedFile
осуществление .Вместо этого используйте UploadedFile#getInputStream()
, а затем считывайте из него байты, например, с помощью общего ввода / вывода .
public void handleFileUpload(FileUploadEvent event) {
byte[] content = IOUtils.toByteArray(event.getFile().getInputstream());
// ...
}
Наконец, просто установите этот byte[]
в вашей сущности и сохраните / объедините ее.
Убедитесь, что вы установили тип кодировки формы на multipart/form-data
и при использовании Apache Commons FileUpload настроили фильтр загрузки файлов в web.xml
согласноPrimeFaces руководство пользователя.