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

PL/SQL Oracle Discussion :

Lire un fichier BLOB


Sujet :

PL/SQL Oracle

  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 6
    Points : 7
    Points
    7
    Par défaut Lire un fichier BLOB
    Bonjour,

    Je suis débutant dans oracle est j'ai un problème quii m'ennuie

    En fait après une longue recherche je suis arrivé à stocker un fichier dans la Base, je pense.

    maintenant je ne sais pas comment faire pour le récuperer et l'afficher?

    Si quelqu'un peut m'aider je serai reconnaissant.

  2. #2
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    c'est quoi la version que tu utilises?
    afficher où ? avec quel outil ?
    PL/SQL, ça affiche rien !
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  3. #3
    Futur Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    j'utilise oracle 10g.

    en fait l'intérét de stocker un fichier (pdf par exemp) dans la BD c'est de pouvoir le récupérér après et c'est ce que je cherche

    actuellement j'éxecute mes requettes par l'intermédiaire de sqldeveloper mais par la suite je vais intégrer ceci dans une application web, bref c'est pour faire des fichiers joints en quelque sorte.

    j'espère que j'ai bien expliqué mon problème et je vous remercie

  4. #4
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  5. #5
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Voici la classe Java pour extraire le BLOB depuis la base:

    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
    package image;
     
    import java.sql.*;
    import java.io.*;
    import java.util.*;
    import oracle.jdbc.*;
    import oracle.sql.*;
     
    public class images
    {
      /*-------------------------
       *   Get the Blob image
       *------------------------*/
      public static byte[] getPhoto (OracleConnection conn, int iNumPhoto)
           throws Exception, SQLException
      {
     
        String req = "" ;
        Blob img ;
        byte[] imgData = null ;
        Statement stmt = conn.createStatement ();
     
        // Query
        req = "Select image From IMAGES Where ImageID = " + iNumPhoto ;
     
        ResultSet rset  = stmt.executeQuery ( req );
     
        while (rset.next ())
        {   
          img = rset.getBlob(1);
          imgData = img.getBytes(1,(int)img.length());
        }   
     
        rset.close();
        stmt.close();
     
        return imgData ;
     
      }
     
    }
    Et le code de la JSP pour l'afficher (image.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
    <%@ page import = "image.*" %>
                <%@ page import = "java.io.*" %>
                <%@ page import = "oracle.jdbc.OracleConnection" %>
                <jsp:useBean id="photo" class="image.images" scope="session" />
                <%
     
                  int iNumPhoto ;
                  oracle.jdbc.driver.OracleConnection conn = null;
     
                  if ( request.getParameter("imgID") != null )
                  {
     
                    iNumPhoto = Integer.parseInt(request.getParameter("imgID")) ;   
     
                    try
                    {  
                       conn = …………;
                       conn.setAutoCommit (false);  
     
                       // get the image from the database
                       byte[] imgData = photo.getPhoto( conn, iNumPhoto  ) ;   
                       // display the image
                       response.setContentType("image/gif");
                       OutputStream o = response.getOutputStream();
                       o.write(imgData);
           o.flush(); 
                       o.close();
                    }
                    catch (Exception e)
                    {
                      e.printStackTrace();
                      throw e;
                    }
                    finally
                    {
                      … Close the connexion … ;
                    }  
                  }
                %>
    avec un exemple d'appel:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    img src="image.jsp?imgID=12" width="115" border="0"
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  6. #6
    Futur Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    merci

  7. #7
    Membre régulier
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2011
    Messages : 75
    Points : 88
    Points
    88
    Par défaut
    Hello,

    Je remonte un peu ce vieux sujet.

    J'ai testé la classe Java pour extraire le blob. Mon fichier n'est pas une image mais un fichier texte, même si au final on extrait un objet de type byte[], donc ça doit pas être trop grave. Je n'ai pas d'erreur, j'espère que ça a marché.

    Par contre, pour la suite, je ne sais pas trop comment régénérer mon .txt à partir du byte[]. Dans le code de la JSP il y a une variable response que je sais pas vraiment d'où elle sort. D'autant que je ne veux pas l'afficher sur une page web, je veux lire le fichier texte (filereader, bufferedReader, à moins que quelqu'un ait une meilleure idée).

    Comment traiter cette variable byte[] pour retrouver le fichier uploadé ?

    Merci d'avance !

  8. #8
    Membre régulier
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2011
    Messages : 75
    Points : 88
    Points
    88
    Par défaut
    Problème résolu grâce à un autre sujet :
    fichier -> byte[] -> Blob et l'inverse

    voilà

  9. #9
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 1
    Points : 1
    Points
    1
    Par défaut insérer un fichier Sql
    Bonjour,
    j'ai un petite question est ce que on peut insérer un fichier sql à mon projet J2EE , lancer le script et récupérer le résultat sous forme d'un fichier excel que je peux télécharger à partir de mon appli web
    Merci par avance

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2.x] Lire des fichiers Blob
    Par Scipius2012 dans le forum Symfony
    Réponses: 3
    Dernier message: 30/04/2012, 01h11
  2. Lire un fichier BLOB
    Par slash_X dans le forum PL/SQL
    Réponses: 2
    Dernier message: 01/03/2009, 12h57
  3. Réponses: 1
    Dernier message: 29/08/2006, 21h45
  4. [java][Oracle]Ouvrir un fichier(blob) avec le browser
    Par marsup54 dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 11/09/2003, 13h35
  5. Lire le fichier du port série
    Par saibe dans le forum Linux
    Réponses: 7
    Dernier message: 09/04/2003, 09h29

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