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

Java Discussion :

Récupération d'un champ BLOB et téléchargement/affichage


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur et passionné
    Inscrit en
    Juillet 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur et passionné

    Informations forums :
    Inscription : Juillet 2011
    Messages : 34
    Par défaut Récupération d'un champ BLOB et téléchargement/affichage
    Bonjour à tous,

    Dans ma Web App, j'ai créé et stocké un fichier xls dans ma base de données dans un champ blob.

    Je souhaite maintenant que d'un click, l'utilisateur puisse récupérer ce fichier.
    J'arrive à extraire le blob, et à lire les bits pour obtenir mon fichier xls original, mais comment faire pour "l'afficher" dans ma jsp ?

    Voici mon 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
     
    sql="SELECT nom_fichier_xls, fichier_xls  FROM budget WHERE id_budget=?";
    		try{
    			cnx=Connexion.open();
    			cmd=cnx.prepareStatement(sql);
    			cmd.setInt(1, id_budget);
    			result=cmd.executeQuery();
    			if(result.first()){
    				result.first();
    				nomFichier=result.getString("nom_fichier_xls");
    				InputStream iStreamFile = result.getBinaryStream("fichier_xls");
     
    				byte [] buffer=new byte[1024];
    				int length=0;
    				while((length=iStreamFile.read(buffer))!=-1){
    					oStreamFile.write(buffer,0,length);
    				}
    			}
    			else{
    				System.out.println("Pas d'occurences trouvees");
    			}

    Je souhaiterais soit pouvoir l'ouvrir dans un nouvel onglet, soit pouvoir afficher la boite de dialogue de firefox (Ouvrir avec / Enregistrer sous).

    Comment puis-je procéder à partir de ma servlet ?

  2. #2
    Nouveau candidat au Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 2
    Par défaut
    Bonjour roadyrod,

    La solution est simple : Pour envoyer des données binaires à partir d'une servlet, tu peux utiliser l'OutputStream disponible dans l'objet response (l'argument HttpServletResponse). ainsi, le même flux que tu as utilisé pour sauvgarder les données binaires dans un fichier, pourra être utiliser pour mette le flux dans l'OutputStream de la servlet:

    ...
    byte [] buffer=new byte[1024];
    int length=0;
    ServletOutputStream sortie = response.getOutputStream();
    while((length=iStreamFile.read(buffer))!=-1){
    //oStreamFile.write(buffer,0,length);
    sortie.write(buffer,0,length);
    }
    ...

    Tu peux trouver un exemple complet d'envoi de fichier via servlet dans l'article suivant : http://lebonprogrammeur.blogspot.com...nvoyer-un.html

    Bonne chance

  3. #3
    Membre averti
    Homme Profil pro
    Développeur et passionné
    Inscrit en
    Juillet 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur et passionné

    Informations forums :
    Inscription : Juillet 2011
    Messages : 34
    Par défaut
    Salut mhhj82,

    Désolé pour cette réponse tardive, j'avais déjà pas mal de trucs sur le feu pour m'occuper.

    Bien que j'ai déjà testé des méthodes similaires sans grand résultat, je te remercie pour ce nouveau lien qui me permettra peut être d'y voir plus clair.

    Je vous tient au courant.

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

Discussions similaires

  1. [ODBC] Problème d'affichage php odbc d'une image stockée en champ blob
    Par caro384 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 10/07/2012, 11h58
  2. Réponses: 8
    Dernier message: 29/09/2011, 10h01
  3. [MySQL] Récupération d'un champ et affichage
    Par groskanel dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 09/07/2009, 18h31
  4. [MySQL] Affichage d'un fichier stocké sous la forme d'un champ BLOB
    Par Milicy dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 12/06/2008, 11h08
  5. affichage directe d'un champ BLOB dans une DG
    Par zaineb.z dans le forum VB.NET
    Réponses: 2
    Dernier message: 04/04/2008, 14h03

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