Bonjour
J'ai une application qui va lire la contenu d'un Blob contenu dans une base oracle. En voici le code :
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...
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
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(); }
Merci.
Partager