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

JDBC Java Discussion :

[Java][SQL]Connaitre l'extension d'un Blob


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 73
    Par défaut [Java][SQL]Connaitre l'extension d'un Blob
    Bonjour

    J'ai une application qui va lire la contenu d'un Blob contenu dans une base oracle. En voici le code :
    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
     
     Connection conn = null;
    		PreparedStatement stmt = null;
    		ResultSet rs = null;
     
    		InputStream in = null;
    		OutputStream out = null;
     
    		Blob blob = null;		
    		String fileName = null;
     
    		try {
     
    			conn = (Connection)pm.getConnection();
     
    			conn.setAutoCommit(false);
    			stmt = conn.prepareStatement("SELECT id,Contenu FROM ged.courrier WHERE evenement_id = ?");
    			stmt.setString(1, unIdCourrier );
    			rs = stmt.executeQuery();
     
    			if(rs.next()) {
    				blob = rs.getBlob("Contenu");
     
     
    			}
    			in = blob.getBinaryStream();
    			fileName = unIdCourrier + ".jpg";
    			String filePath = dirPath + "\\"+fileName;
    			out = new FileOutputStream(filePath);
    			long bufferSize = blob.length();
    			byte[] buffer = new byte[24];
    			int bytesRead = 0;
    			while ((bytesRead = in.read(buffer)) != -1) {
    				out.write(buffer, 0, bytesRead);
    			}
                stmt.clearParameters();
    			buffer = null;
    		}
    		catch(SQLException ex) {
    			ex.printStackTrace();
    		}
    		catch(Exception e) {
    			e.printStackTrace();
    		}
    Ce bout de code va lire le flux binaire contenu dans le Blob et crée le fichier correspondant. Ici, il s'agit d'une image. Le pb, c'est : comment conaitre l'extension du fichier contenu dans le Blob ? Parce que dans mon exemple, je présume de l'extension. Mais il peut s'agir de n'importe quel fichier...

    Merci.

  2. #2
    Membre éclairé
    Inscrit en
    Mars 2002
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 84
    Par défaut
    Je ne pense pas que c'est possible de connaitre le type de fichier stocké dans un blob car a priori on n'est pas obligé d'y stocké un fichier, on peut très bien y mettre du texte ou autre chose. Il faut juste que ce soit un flux binaire.

    tu pourrais peux-être ajouter un champ dans ta table et quand tu insères un record tu fixe le type de fichier que tu place dans le BLOB...

  3. #3
    Membre émérite
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Par défaut
    Je comfirme c'est impossible, à moins d'avoir une méthode qui analyse le fichier et qui déduit l'extension en fonction du contenu...

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 73
    Par défaut
    Merci Aldo.

    C'est exactement ce que j'ai fait, et ça marche.


    Je considère donc que c'est résolu.

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

Discussions similaires

  1. Afficher un champ java.sql.Blob
    Par Mister Nono dans le forum iReport
    Réponses: 0
    Dernier message: 27/11/2007, 17h11
  2. [java - SQL] transformer une Image en BLOB ?
    Par pierre.zelb dans le forum JDBC
    Réponses: 3
    Dernier message: 04/07/2005, 15h04
  3. java.sql.SQLException: read-only
    Par mehdi.kiwi dans le forum Oracle
    Réponses: 6
    Dernier message: 17/05/2005, 16h46
  4. [java.sql.Date] format compatible tout sgbd ?
    Par djskyz dans le forum JDBC
    Réponses: 8
    Dernier message: 15/09/2004, 11h28
  5. [JDBC] java.sql.SQLException: Closed Statement
    Par cmoulin dans le forum JDBC
    Réponses: 4
    Dernier message: 03/09/2004, 17h22

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