IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

Impossible D'afficher Image from MySql DB Erreur sous cette forme : java.io.ByteArrayInputStream@62610b


Sujet :

Servlets/JSP Java

  1. #1
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juin 2006
    Messages : 123
    Points : 59
    Points
    59
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : 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
     
    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 : 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
     
     
    <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.

  2. #2
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 084
    Points
    7 084
    Par défaut
    Normal, tu écris la chaîne qui correspond à l'image. Ce que tu veux c'est afficher une image. Pour afficher une image en HTML, il faut utiliser la base <img/> avec un lien vers l'image.

    Ensuite, il faut effectuer une copy du résultat de la méthode "getBinaryStream()". En effet, la référence renvoyée n'est plus valable après un mouvement (par exemple la méthode "next()") ou la fermeture du ResultSet.

Discussions similaires

  1. Impossible d'afficher image (Firefox,IE,..)
    Par Maglight dans le forum IIS
    Réponses: 1
    Dernier message: 03/01/2014, 12h45
  2. [MySQL] Afficher image PHP/Mysql
    Par Hasret dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 04/03/2013, 12h37
  3. [MySQL] Impossible d'afficher image provenant d'un champ BLOB
    Par Dougou dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 20/12/2011, 15h15
  4. impossible d'afficher images .gif
    Par claire34 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 03/05/2010, 01h10
  5. impossible d'afficher image sous firefox et IE
    Par claire34 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 0
    Dernier message: 01/05/2010, 02h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo