Bonjour,
Je cherche à afficher dans une image dans une page JSF
J'ai déja :
L'upload de l'image dans la base.
Recharger l'image dans le bean.
Le rechargement de l'image dans une nouvelle fenetre en créant un lien sur le lien :<h:commandLink action="#{fileBean.getFile}">
getFile ayant le code suivant :
Une nouvelle fenetre s'ouvre et affiche l'image.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 public String getFile() throws SQLException, JRException, IOException { file = FileService.findById(id); byte[] bytes = file.getData(); FacesContext context = FacesContext.getCurrentInstance(); HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse(); response.setContentLength(bytes.length); response.setContentType(file.getMime()); response.getOutputStream().write(bytes); context.responseComplete(); return null; }
Je souhaite faire : <h:graphicImage url="#{fileBean.file}" styleClass="pic" title="Creer" />
mais cela ne marche pas j'ai l'erreur (presque logique):
Servlet response already use Writer, OutputStream not possible
Et oui la je n'ouvre pas une nouvelle réponse !!
Merci de m'indiquer la route à suivre.
ps : j'ai aussi essayé de retourner le byte[] sans succès.
Partager