je souhaiterais recuperer un BLOB d'une base Fierbird. pour l'afficher sur ma page web. ce BLOB contient du text.
une idée SVP??
je souhaiterais recuperer un BLOB d'une base Fierbird. pour l'afficher sur ma page web. ce BLOB contient du text.
une idée SVP??
Ou as tu un probleme?
As tu deja fait une requete pour récupérer ton object de type Blob?
Si ce n'est pas deja fait essaye de le faire.
Pour le reste tu devrais aller voir dans la FAQ JDBC, de souvenir tout est dedans!!
j'avais vu ce lien mais vu que ce n'est pas une image et que je veux le recupere dans ma page web...
j'ai recuperé ce code sur la site de firebird...
mais j'ai un pb lors de l'instancialtion de bindata il n'accepte pas le "1024"
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 Statement sment = conn.createStatement(); String SQL = "SELECT DESCRIPTION FROM SERVICE_REQ WHERE PROBLEM_TYPE = 'Application'"; ResultSet rs = sment.executeQuery(SQL); byte[] returndata = null; rs.next() ; ByteArrayOutputStream baos = new ByteArrayOutputStream(1024); BufferedInputStream bis = new BufferedInputStream(rs.getBinaryStream("DESCRIPTION")); byte bindata[1024]; int bytesread = 0; if (!rs.wasNull()) { if ( (bytesread = bis.read(bindata,0,bindata.length)) != -1 ) { baos.write(bindata,0,bytesread); } else { out.writes(baos.getBytes()); } }
et je n'arrive pas a l'initalisé
Essaye
Code : Sélectionner tout - Visualiser dans une fenêtre à part byte[] bindata = new byte[1024];
merci ca marche, je n'ai plus d'erreur
mais rien ne s'affiche. le pb doit venir d'une de ces 2 lignes non?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 baos.write(bindata,0,bytesread); out.writes(baos.getBytes());
C'est quoi cette condition:
C'est pour quoi faire? A mon avis tu ferais mieux de l'enlever parce que je n'en vois pas l'utilité.
Code : Sélectionner tout - Visualiser dans une fenêtre à part if (!rs.wasNull())
J'ai fait ca a la volé j'espere que tu n'auras pas de pb a la compilation, sinon suffit de voir ce qui va pas et de l'adapter.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 // tant que j'ai quelque chose dans mon bis j'écrit dans bytesRead while ( (bytesread = bis.read(bindata,0,bindata.length)) != -1 ) { baos.write(bindata,0,bytesread); } //après on l'affiche à l'ecran System.out.println(baos.getBytes());
hou. sa marche. merci beaucoup
j'ai jute modifer la derniere ligne j'ai mis
baos.toString() la methode getBytes n'etait pas connues.
tu connais le difference?
merci encore
j'ai un dernier petit pb les retour a la ligne sont remplacé par \r\n.
Oui le toString te converti comme il y arrive ton texte dans le baos, donc normale que tu es \r\n a la place des retours a la ligne.
Oui j'avais laisse getBytes car c'était dans le code que tu avais fourni, lol!
Je viens de regarder, tu devrais utiliser toByteArray() plutot.
j'ai esayer avec toByteArray mais apparamant il attend un int et pas un byte non?
toByteArray ne sert pas a une nouvelle allocution memoire?
j'ai essaye avec les paramettres d'encodement mais ca na pas marché non plus.
toByteArray te retourne un tableau de bytes
selon l'api :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 toByteArray public byte[] toByteArray() Creates a newly allocated byte array. Its size is the current size of this output stream and the valid contents of the buffer have been copied into it. Returns: the current contents of this output stream, as a byte array.
le serveur me revoit l'erreur suivante:
bizard pourtant je crois que j'ai importé tout ce qu'il faut.The method write(int) in the type Writer is not applicable for the arguments (byte[])
java.sql.*,org.firebirdsql.management.*,java.io.*
Je sais pas ce que tu a ecris, mais ByteArrayOutputStream a deux methodes write :
Si tu passe un seul parametre, le compilateur attend un entier!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 void write(byte[] b, int off, int len) void write(int b)
Qu'est ce que tu racontes, je crois que tu ne sais pas vraiment ce que tu fais la==> Ouuuuuu Pas Bien!!Envoyé par fernier
Code : Sélectionner tout - Visualiser dans une fenêtre à part System.out.println(baos.toByteArray());
je crée un JSP alors le code ci-dessous n'est pas reconnu:
pour pouvoir afficher quelle que chose c'est:System.out.println(baos.toByteArray());
non?
Code : Sélectionner tout - Visualiser dans une fenêtre à part out.write
je pence avoir essaye toute les solutions mais je n'est pas trouvée la bonne.
dans les jsp c'est out.println(........) ==> sans System. devant!!
T'aurais p'etre du commencer dans une console si tu ne connais pas ca aurait été plus simple que dans une jsp.
ba j'avais un exemple de JSP deja tout fait alors...
ca m'affiche
bizar bizar![B@1a13338
[B@1a13338 est le bytecode de ton image.LOL.
Il affiche exactement ce que tu lui as demande.
=> c'est pas une image c'est du texte ce qui n'a rien d'extraordinaire mais il ne cherche pas à comprendre (encore un qui croit que les bout de code tombé tout cru vont reussir a le faire devenir un super programmeur).Envoyé par willoi
o je ne crois du tout j'essaie juste d'avoir un programme qui fonctionne.
ce n'est pas parce que j'ai poser un msg ici que j'arrete de chercher de mon cote.
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