Afficher une iamge d'une base de données oracle

Signaler
Messages postés
101
Date d'inscription
mercredi 23 septembre 2009
Statut
Membre
Dernière intervention
19 juillet 2019
-
cs_DARKSIDIOUS
Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
-
Slt les gars, j'ai un soucis grave.
je n'arrive pas à afficher une image que je veux récupérer d'une base données.

3 réponses

Messages postés
101
Date d'inscription
mercredi 23 septembre 2009
Statut
Membre
Dernière intervention
19 juillet 2019

Mon code est le suivant:


try{

String file="D:\\OPS\\TEST\\kevin.jpeg";
File monImage = new File(file);
FileOutputStream ostreamImage=new FileOutputStream(monImage);
String sql = "select TEMPLATE from FINGER where ID=?";
Connection conn =null; Class.forName("oracle.jdbc.OracleDriver");
conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "kevin", "1404");

PreparedStatement inst = null;
ResultSet resultat = null;
inst = conn.prepareStatement(sql);
inst.setString(1, "kev");
resultat = inst.executeQuery();
if(resultat.next())
{
InputStream istreamImage = resultat.getBinaryStream("TEMPLATE");
byte[] buffer = new byte[1];
while(istreamImage.read(buffer)>0)
{ ostreamImage.write(buffer);
}

JOptionPane.showMessageDialog(null, "l'image "+ostreamImage);
}
}
catch(Exception ex)
{ex.getMessage();}
Messages postés
101
Date d'inscription
mercredi 23 septembre 2009
Statut
Membre
Dernière intervention
19 juillet 2019

l'image kevin.jpeg est crée mais est de taille 0.
Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
87
Salut,

Essaye en flushant ton buffer d'écriture :
InputStream istreamImage = resultat.getBinaryStream("TEMPLATE");
byte[] buffer = new byte[1];
while(istreamImage.read(buffer)>0)
{
ostreamImage.write(buffer);
}
ostreamImage.flush();
osstreamImage.close();
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement