[Java][SQL]Connaitre l'extension d'un Blob
Bonjour
J'ai une application qui va lire la contenu d'un Blob contenu dans une base oracle. En voici le code :
Code:
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 40 41 42 43 44
|
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
InputStream in = null;
OutputStream out = null;
Blob blob = null;
String fileName = null;
try {
conn = (Connection)pm.getConnection();
conn.setAutoCommit(false);
stmt = conn.prepareStatement("SELECT id,Contenu FROM ged.courrier WHERE evenement_id = ?");
stmt.setString(1, unIdCourrier );
rs = stmt.executeQuery();
if(rs.next()) {
blob = rs.getBlob("Contenu");
}
in = blob.getBinaryStream();
fileName = unIdCourrier + ".jpg";
String filePath = dirPath + "\\"+fileName;
out = new FileOutputStream(filePath);
long bufferSize = blob.length();
byte[] buffer = new byte[24];
int bytesRead = 0;
while ((bytesRead = in.read(buffer)) != -1) {
out.write(buffer, 0, bytesRead);
}
stmt.clearParameters();
buffer = null;
}
catch(SQLException ex) {
ex.printStackTrace();
}
catch(Exception e) {
e.printStackTrace();
} |
Ce bout de code va lire le flux binaire contenu dans le Blob et crée le fichier correspondant. Ici, il s'agit d'une image. Le pb, c'est : comment conaitre l'extension du fichier contenu dans le Blob ? Parce que dans mon exemple, je présume de l'extension. Mais il peut s'agir de n'importe quel fichier...
Merci.