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 :

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


Sujet :

Servlets/JSP 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 dans JSP
    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
    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
    Bonjour,

    Bon, j'ai essayé pas mal de méthodes, en essayant de renvoyer par exemple le flux OutputStream pour pouvoir le faire lire par la servlet. Mais rien de mieux.

    Quelqu'un sait-il comment je peux me dépatouiller ?

  3. #3
    Membre chevronné Avatar de florentB
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2006
    Messages : 332
    Par défaut
    A quel résultat es-tu actuellement ?

    Que t'affiches la page ?

    Quel est ton code actuel ?

  4. #4
    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
    Merci de ton intéret Florent,

    Pour l'instant, j'ai mis le problème de côté, ne sachant du tout par où l'attaquer (mais ça ne m'enlève pas l'envie de le résoudre !)

    Comme écrit dans mon premier post, j'ai essayé, à partir de la servlet, de récupérer le fichier généré et de l'afficher (ou dialog box ouvrir/enregistrer).
    Mais lorsque j'utilise cette méthode, je ne peux renvoyer l'objet avec un out.println(), car en retour, j'ai uniquement l'url du fichier.

    J'ai donc testé une deuxième technique : essayer de récupérer un tableau de bytes et le faire lire de façon séquentielle par la servlet. Mais pour cette technique, je ne sais trop comment m'y prendre.

    Enfin, j'ai aussi essayé de récupérer, dans ma méthode principale, un flux OutputStream pour l'envoyer en lecture séquentielle à la servlet, mais là encore, je ne sais pas du tout comment procéder.

  5. #5
    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
    Pleaaaaaaaase Help

    Personne n'a une idée, une piste à explorer ?

  6. #6
    Membre chevronné Avatar de florentB
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2006
    Messages : 332
    Par défaut
    jette un oeil ici, je pense que ça doit aller pour ce que tu veux faire :
    tu récupère la response, puis tu lui écrit ce qu'il faut dedans.
    N'oublies pas de mettre le bon content-type pour les fichier xls


    == Edit
    Le code est à faire dans les servlets

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

Discussions similaires

  1. Récupération d'un champ BLOB et téléchargement/affichage
    Par roadyrod dans le forum Général Java
    Réponses: 2
    Dernier message: 19/09/2011, 17h34
  2. Réponses: 12
    Dernier message: 12/04/2010, 17h27
  3. Réponses: 0
    Dernier message: 14/05/2009, 12h38
  4. [JFreeChart] Affichage dans JSP
    Par Jips dans le forum 2D
    Réponses: 4
    Dernier message: 28/03/2008, 10h08
  5. Réponses: 1
    Dernier message: 12/05/2007, 10h26

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