je veux appeler une image blob depuis ma bdd pour cela j'ai une servlet qui extrait l'image et je veux l'appeler dans ma jsp par la balise <img src=""/> mais rien ne s'affiche
DisplayBlobServlet.java
jsp
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64 @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); HttpSession session = request.getSession(); etudiant s = (etudiant)session.getAttribute("bachelier"); String query = "select photo from etudiant where bac='"+s.getBac()+"'"; ServletOutputStream out = response.getOutputStream(); try { stat = cnx.prepareStatement(query); rslt = stat.executeQuery(query); if (rslt.next()) { photo = rslt.getBlob(1); } else { response.setContentType("text/html"); out.println("<body><h1>pas de photo</h1></body></html>"); return; } response.setContentType("image/jpg"); try { in = photo.getBinaryStream(); } catch (SQLException ex) { Logger.getLogger(DisplayBlobServlet.class.getName()).log(Level.SEVERE, null, ex); } int length = (int) photo.length(); int bufferSize = 1024; byte[] buffer = new byte[bufferSize]; while ((length = in.read(buffer)) != -1) { System.out.println("writing " + length + " bytes"); out.write(buffer, 0, length); } in.close(); out.flush(); } catch (SQLException e) { response.setContentType("text/html"); out.println("<html><head><title>Error: Person Photo</title></head>"); out.println("<body><h1>Error=" + e.getMessage() + "</h1></body></html>"); return; } finally { try { rslt.close(); stat.close(); cnx.close(); } catch (SQLException e) { e.printStackTrace(); } } }
je ne reçoit que le contenu de alt: "votre image"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <legend>Photo</legend> <img class="photo" id="idPhoto" src="/prjBrsCom/DisplayBlobServlet" alt="votre image"/>
Partager