Partage
  • Partager sur Facebook
  • Partager sur Twitter

Impossible d'afficher image de MySql db / JSP

    9 avril 2011 à 12:23:56

    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 :
    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
    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
    <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.
    • Partager sur Facebook
    • Partager sur Twitter

    Impossible d'afficher image de MySql db / JSP

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown