Originariamente inviato da cerza
salve,
dovrei recuperare da una query un'immagine immagazzinata in un db come tipo blob e visualizzarla in una pagina jsf, come faccio ??? ho provato cn graficImage ma fa riferimento ad una posizione fissa......
inoltre la query potrebbe anche restituirmi più immagini, è possibile gestire una lista di immagini??
grazie mille.
buona giornata.
Siccome i blob sono tipi di dato binario non puoi prenderli e buttarli in una jsp ma devono passare attraverso uno Stream.
Quindi devi creare una Servlet che ti intercetta le chiamate doGet alle image e fargli mettere sullo streem out la tua immagine
Più o meno cosi:
codice:
res.setContentType("image/gif");
ServletOutputStream out = res.getOutputStream();
ClasseCheRecuperaImmagini db = new ClasseCheRecuperaImmagini();
InputStream in = db.getImmagine(id);
byte[] buffer = new byte[in.available()];
while(in.read(buffer) != -1) {
out.write(buffer);
}
out.flush();
la jsf per esempio
codice:
<h:form id="myform1">
<h:panelGrid columns="2">
<h:outputText value="Id Immagine" />
<h:outputText value="#{miaImmagine.empId}" />
<h:outputText value="Image" />
<f:verbatim>
<iframe src="ImageServlet?empId=100" frameborder="0"></iframe>
</f:verbatim>
</h:panelGrid>
</h:form>