Slt,
J'utilise l'IDE NetBeans 5.5 et je veux afficher dans ma page jsf une image qui est stockée dans la BD (Mysql) de type Blob.
J'arrive pas à l'afficher.
Quelqu'in peut il m'aider...
Merci
Slt,
J'utilise l'IDE NetBeans 5.5 et je veux afficher dans ma page jsf une image qui est stockée dans la BD (Mysql) de type Blob.
J'arrive pas à l'afficher.
Quelqu'in peut il m'aider...
Merci
La solution la plus simple et de récupérer le flux binaire du blob et l'écrire dans un fichier temporaire, accessible du serveur.
Ensuite positionner l'url qui la cible dans ta page.
A mon avis créer un fichier temporaire ne sert a rien. Il est préférable de renvoyer diretement l'image sous forme d'un tableau de byte et d'afficher cela.
Exemple (très simplifier):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 public byte[] getImage() { byte[] rt = null; byte[] buffer = new byte[1024]; java.io.InputStream is = null ; java.io.ByteArrayOutputStream os = null ; ..... traitement du query du resultset ... // Ici je suis sur un enregistrement valide contenant une image // dans la zone b_data // Get bytes from the BLOB using a stream Blob bl = rs.getBlob("b_data") ; if (bl != null ) { is = bl.getBinaryStream() ; os = new java.io.ByteArrayOutputStream() ; } int length = 0; try { while((length = is.read(buffer)) != -1) { os.write(buffer, 0, length); } os.flush() ; rt = os.toByteArray() ; os.close() ; } catch (Exception e) { System.out.println("--> erreur stream " + e.getMessage()) ; } ... close du resultset, du statement .... return rt ; } // et dans la page jsp un truc du style response.setContentType("image/" + montype ); response.getOutputStream().write( monbean.getImage() ) ; response.flushBuffer();
c'est effectivement encore plus simple.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager