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 :

insérer image Long Row


Sujet :

Servlets/JSP Java

  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 30
    Par défaut insérer image Long Row
    Bonjour,

    Voila j'ai une image stocké dans ma base de donnée oracle au format LONG RAW.

    Je voulais utiliser un type blob en convertissant dans ma requete SQL mon champs en To_lob() mais sa ne marche pas, oracle n'accepte pas ma fonction to_lob...

    J'arrive a récupérer ma variable dans une string et elle est apparament codé en Hexa mais je ne sais pas quoi en faire.

    Comment puis je la traiter pour l'afficher?

    Merci d'avance de vos réponses.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    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
    ResultSet rset = stmt.executeQuery
           ("select picture from mytable where user='Machin'");
    // Get the first row
    if (rset.next ())
    {
      // Get data as a Stream from Oracle to the client
      InputStream data = rset.getBinaryStream (1);
      // Open a file to store the gif data
      OutputStream out = response.getOutputStream();
     
     
      // Loop, reading from the stream and writing to the client
      int c;
      byte[] buf = new byte[256];
      while ((c = data.read (buf)) != -1)
        out.write (buf,0,c);
    }
    au passage, pas oublier les headers http éventuels pour préciser que c'est une image

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 30
    Par défaut
    Merci de cette réponse je suis entrain d'essayer, simplement tu entend quoi par response.getOutputStream(); ?

    A partir de ma servlet, je doit écrire page.print(...);

    pour le moment si je fait un get de ma variable j'obtiens quelque chose comme: oracle.jdbc.driver.OracleConversionInputStream@4f459c

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par Slyders Voir le message
    Merci de cette réponse je suis entrain d'essayer, simplement tu entend quoi par response.getOutputStream(); ?
    'est le stream client qui correspond à ton httpservletresponse. Note que, pour renvoyer l'image au client, tu dois avoir une servlet (ou eventuellement un jsp
    ) qui renvoie juste le contenu binaire et que tu pointe dans un <img>

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 30
    Par défaut
    Je débute un peu en J2EE Servlet et la je vois pas du tout comment faire.

    J'ai commencé par définir mes 2 servlet dans mon Web.xml:
    - Afficher_persones : qui contient un Array d'objet donc le champ InputStream.
    Cette Servlet est afficher avec
    res.setContentType("text/html");
    PrintWriter page = res.getWriter(); etc...

    donc je suppose qu'a un moment je devrais avoir quelque chose comme page.print("<img src='UneImage?maphoto="+((Personnes)tabPersonnes.get(i)).getPhoto()+".jpg'>");

    et donc la ma Servlet lance l'image selon la variable?

    comment je récupère cette variable pour la traiter et l'afficher ?

    -mon autre servlet est UnetImage qui est :

    public void doGet... {
    InputStream Photo = (InputStream) req.getAttribute("maphoto");
    OutputStream out = response.getOutputStream();

    int c;
    byte[] buf = new byte[256];
    while ((c = Photo.read (buf)) != -1)
    out.write (buf,0,c);
    }

    Merci encore de ton aide

Discussions similaires

  1. HELP ! insérer Image dans le main ?
    Par lex13 dans le forum AWT/Swing
    Réponses: 11
    Dernier message: 04/04/2007, 14h12
  2. insérer images dans nbm
    Par jessie dans le forum NetBeans
    Réponses: 1
    Dernier message: 17/01/2007, 23h32
  3. probleme avec le type LONG ROW
    Par amigauss dans le forum SQL
    Réponses: 10
    Dernier message: 21/09/2006, 10h29
  4. insérer image depuis vba
    Par Sebastien_INR59 dans le forum Access
    Réponses: 1
    Dernier message: 28/06/2006, 11h45
  5. [MySQL] insérer image dans bdd grace a un formulaire
    Par pod1978 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 14/03/2006, 08h34

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