Partage
  • Partager sur Facebook
  • Partager sur Twitter

Questions sur le Java EE

image de type blob

    14 novembre 2019 à 12:39:10

    Bonjour, 

    Je débutante dans la programmation en Java EE et je vous prie de pardonner mon ignorance mais j'aimerai vraiment que vous m'aidiez si c'est possible.

    Mon application web consiste à stocker des images dans ma base de données en type intblob. L'upload se deroule bien mais c'est pour l'affichage que j'ai un problème. 

    Tout d'abord, lors de sa récupération dans mon servlet, j'ai mis les images dans une List<Blob> image= new Array<List> 

    ------------------------------------------------------------

    Image_upload iu= new Image_upload() ;// Ici, Image_upload est une classe qui renvoi un getteur de type List 
    
    List<Blob> image= new ArrayList<Blob>() ;
    
    image= iu.getBlob() ;//getBlob est le getteur récupéré
    
    int ct=1 ; 
    
    Blob blob1 = null, blob2 = null, blob3= null ;
    
    for (Blob blob : image) {
    
    if(ct==1) {
    
    blob1=blob ;
    
    ct++ ;
    
    try {
    
    byte byteArray[] =blob1.getBytes(1, (int)blob1.length()) ;
    
    response.setContentType("image/png") ;
    
    OutputStream os=response.getOutputStream();
    
    os.write(byteArray) ;
    
    request.setAttribute("blob1", os);
    
    os.flush() ;
    
    os.close() ;
    
    }
    
    catch(Exception e){
    
    System.out.println("erreur 1"+ e);
    
    }
    
    }
    
    else if(ct==2) {
    
    blob2=blob ;
    
    ct++ ;
    
    try {
    
    byte byteArray[] =blob2.getBytes(1, (int)blob2.length()) ;
    
    response.setContentType("image/png") ;
    
    OutputStream os=response.getOutputStream();
    
    os.write(byteArray) ;
    
    request.setAttribute("blob2", blob2);
    
    os.flush() ;
    
    os.close() ;
    
    }
    
    catch(Exception e){
    
    System.out.println("erreur 2"+ e);
    
    }
    
    }
    
    else if(ct==3) {
    
    blob3=blob ;
    
    ct++ ;
    
    try {
    
    byte byteArray[] =blob3.getBytes(1, (int)blob3.length()) ;
    
    response.setContentType("image/png") ;
    
    OutputStream os=response.getOutputStream();
    
    os.write(byteArray) ;
    
    request.setAttribute("blob3", blob3);
    
    os.flush() ;
    
    os.close() ;
    
    }
    
    catch(Exception e){
    
    System.out.println("erreur  3"+ e);
    
    }
    
    }
    
    else System.out.println("Une erreur c'est produite, veulliez verifier");
    
    }
    
    
    
    
    
    



    -------------------------------------------------------------------------------------------------------------------------------------------

    dans la classe Image_upload j'ai une methode getImage() qui contient : 

    try{
    
    Connection con=DB.getConnection() ;
    
    PreparedStatement ps=con.prepareStatement("select image from matable order by id desc limit 3 ") ;
    
    ResultSet rs= ps.executeQuery() ;
    
    while(rs.next()){
    
    image.add(rs.getBlob("image")) ;
    
    }
    
    }
    
    catch(Exception e){
    
           out.println("erreur "+ e);
    
    }



    Ici, on retrouve 

    private List<Blob> image=new ArrayList<Blob>();

    et le getteur

    public void setBlob(List<Blob> blob) {
    
    this.image=blob ;
    
    }
    
    public List<Blob> getBlob() {
    
    return image ;
    
    }



    --------------------------------------------------------------------------------------------------------------------------------------------

    Puis dans ma page jsp j'ai mis :

    <div class="news_post" id="image1">
    
               <img src="${blob1}" alt="">
    
    </div>
    
    <div class="news_post" id="image2">
    
               <img src="${blob2}" alt="">
    
    </div>
    
    <div class="news_post" id="image3">
    
               <img src="${blob3}" alt="">
    
    </div>



    Mais il n'y a pas de message d'erreur, mais pourtant une seule image apparait( alors que c'est censé être une liste d'image)  et tout le contenu de ma page jsp,à savoir la vue : <p>, <h1>,<article>... disparait et occupe toute ma fenêtre de page. Je ne sais comment comment redimensionner les photos ou peut etre que j'aurais dû redimensionner mes photos avant de l'insérer dans ma base de données. 

    S'il vous plaît, si vous avez une idée du comment je devrait faire pour afficher mes images sans infecter le contenu de ma page et aussi que toutes les images corresspondant s'affichent, aidez-moi.

    Merci beaucoup d'avoir pris la peine de lire.  

    -
    Edité par Yuusha 15 novembre 2019 à 7:05:13

    • Partager sur Facebook
    • Partager sur Twitter
      14 novembre 2019 à 14:19:39

      Bonjour,

      Mauvais forum

      Le sujet est déplacé de la section HTML / CSS vers la section Langage Java

      Merci de colorer votre code à l'aide du bouton Code

      Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton Code de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: java;">Votre code ici</pre>.


      -
      Edité par Lamecarlate 14 novembre 2019 à 14:22:18

      • Partager sur Facebook
      • Partager sur Twitter

      Pas d'aide concernant le code par MP, le forum est là pour ça :)

      Questions sur le Java EE

      × 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