xmlns template look framework for feel bootstrap and primefaces jsf-2.2 wildfly

template - Primefaces Fileupload en Wildfly



primefaces login template (2)

Estoy tratando de guardar una imagen de perfil en una base de datos.

Página:

<p:graphicImage id="profileImage" value="#{myProfile.usersProfileImage}" /> <p:fileUpload fileUploadListener="#{myProfile.fileUploadListener}" auto="true" mode="advanced" update="profileImage" sizeLimit="100000" allowTypes="/(/.|//)(gif|jpe?g|png)$/" />

Apoyo:

public StreamedContent getUsersProfileImage() { return new DefaultStreamedContent(new ByteArrayInputStream( user.getProfileJpegImage())); } public void fileUploadListener(FileUploadEvent event) { try { setProfileImageFromInputStream(event.getFile().getInputstream()); } catch (IOException e) { throw new IllegalStateException(e); } } private void setProfileImageFromInputStream(InputStream stream) { try { user.setProfileJpegImage(IOUtils.toByteArray(stream)); } catch (IOException e) { throw new IllegalStateException(e); } }

Después de elegir una imagen, la imagen no cambia y recibí un error de seguimiento en mi consola

14:36:02,387 ERROR [io.undertow.request] (default task-2) UT005005: Cannot remove uploaded file C:/Development/wildfly-8.0.0.Final/standalone/tmp/myApp.war/undertow3307538071115388117upload

También encontré este problema https://issues.jboss.org/browse/WFLY-2329

y también intenté extender mi Servlet Faces con multipart-config como:

<servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> <multipart-config> <max-file-size>20848820</max-file-size> <max-request-size>418018841</max-request-size> <file-size-threshold>1048576</file-size-threshold> </multipart-config> </servlet>

pero nada cambió.

¿Algunas ideas? TY en avanzado


Olvidé configurar el tipo MIME en StreamedContent


Tengo el mismo error:

[io.undertow.request] (default task-62) UT005005: Cannot remove uploaded file...

Sin embargo, pude resolver este problema cerrando el flujo después de leer.

Aquí está mi trozo de código (es un poco diferente):

byte[] bytes; try { InputStream is = upFile.getInputstream(); if (is != null) { bytes = IOUtils.toByteArray(is); is.close(); } else { bytes = new byte[0]; } } catch (IOException e) { log.error(e.getMessage()); bytes = new byte[0]; }

Después de agregar línea:

is.close();

el error de Udertow UT005005 ya no está.