Impossible D'afficher Image from MySql DB Erreur sous cette forme : java.io.ByteArrayInputStream@62610b
Je suis un peu perdu dans mes codes. Je suis entrain de developer une page en JSP pour rechercher et afficher des images contenues dans une base de donnee en MySQL.
Je pense que mon code est correct le probleme arrive au niveau de l'affichage car au lieu d'afficher l'image, je recois ce genre d'erreur :
Code:
1 2
|
java.io.ByteArrayInputStream@62610b |
La table Imagetb comporte 3 attributs et lattribut Image est e type BLOB.
La requete passe bien le seul problem c'est au niveau de l'affichage voici un bout de mon code.
Code : Search.java
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 45 46 47 48 49 50 51 52
|
try {
Class.forName(driver).newInstance();
conn = DriverManager.getConnection(url+dbName,userName,password);
System.out.println("Connected to the database");
String emp_name = request.getParameter("emp_name");
ArrayList al=null;
ArrayList emp_list =new ArrayList();
String query = "select * from imagetb where Title='"+emp_name+"'";
System.out.println("query " + query);
String imglen="";
st = conn.createStatement();
ResultSet rs = st.executeQuery(query);
if(rs.next()){
imglen = rs.getString(1);
System.out.println(imglen.length());
}
while(rs.next()){
int len = imglen.length();
byte[] rb = new byte [len];
InputStream readImg = rs.getBinaryStream(3);
int index=readImg.read(rb,0,len);
System.out.println("index" + index);
response.setContentType("image/jpg");
al = new ArrayList();
al.add(rs.getString(1));
al.add(rs.getString(2));
al.add(rs.getBinaryStream(3));
System.out.println("al :: "+al);
emp_list.add(al);
}
request.setAttribute("empList",emp_list);
System.out.println("empList " + emp_list);
// out.println("emp_list " + emp_list);
String nextJSP = "/viewSearch.jsp";
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(nextJSP);
dispatcher.forward(request,response);
conn.close();
System.out.println("Disconnected from database");
} catch (Exception e) {
e.printStackTrace();
}
} |
Code : ViewSearch.JSP
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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
<body>
<br><br><br><br><br><br>
<table width="700px" align="center" style="border:1px solid #000000;">
<tr>
<td colspan=8 align="center" style="background-color:ffeeff"><b>Image Record</b></td>
</tr>
<tr style="background-color:efefef;">
<td><b>Title</b></td>
<td><b>Image</b></td>
</tr>
<%
int count=0;
String color = "#F9EBB3";
if(request.getAttribute("empList")!=null)
{
ArrayList al = (ArrayList)request.getAttribute("empList");
Iterator itr = al.iterator();
while(itr.hasNext()){
if((count%2)==0){
color = "#eeffee";
}
else{
color = "#F9EBB3";
}
count++;
ArrayList empList = (ArrayList)itr.next();
%>
<tr style="background-color:<%=color%>;">
<td><%=empList.get(1)%></td>
<td><%=empList.get(2)%></td>
</tr>
<%
}
}
%>
<%
if(count==0){
%>
<tr>
<td colspan=8 align="center" style="background-color:eeffee"><b>No Record</b></td>
</tr>
<%
}
%>
</table>
</body> |
Voici comment le result s'affiche
Title Image
lei java.io.ByteArrayInputStream@62610b
Merci pour votre aide.