Recuper image blob

MedL Messages postés 9 Date d'inscription mardi 20 septembre 2016 Statut Membre Dernière intervention 14 octobre 2016 - Modifié par KX le 20/09/2016 à 21:41
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 22 sept. 2016 à 23:11
comment recuperer une image blob (mysql) dans ma jsp ?
je ne peut pas trouver l'erreur:

servlet:
while(rs.next()){
     // "1" because the blob is the only field retrieved by the query : 
     /*Blob blob = rs.getBlob(6);
     InputStream in = blob.getBinaryStream();
     Image image = ImageIO.read(in);
       return image;
          je peut utuliser ca seulment ?*/
    byte[] bytes = rs.getBytes(1);
    Image img = Toolkit.getDefaultToolkit().createImage(bytes);
    ImageIcon icon = new ImageIcon(img); 
    return icon;
}
.....................
request.setAttribute("form", form);
.......

jsp:
<% Animales animale = (Animales) request.getAttribute("animale");

 out.println(animale.getImg1()+"<img src='"+animale.getImg1()+"' width='60' height='60'/>");
%>
A voir également:

2 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 127
20 sept. 2016 à 22:06
Bonjour,

<img src='toto'>
ne fonctionne que si
'toto'
est le nom d'un fichier accessible depuis la page web, mais si
animale.getImg1()
retourne un objet java.awt.Image ça ne peut pas marcher, il faudrait enregistrer cette image dans un fichier temporaire, et mettre dans
<img src
le lien vers ce fichier.

Alternative : au lieu d'enregistrer les bits de tes images en Blob en base de données, tu pourrais les enregistrer en Clob avec un format en Base64 que tu pourrais mettre tel quel dans ta page web.

<img src='data:image/png;base64,...' width='60' height='60'/>

Voir aussi les classes Base64.Encoder et Base64.Decoder
0