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 :

Téléchargement d'un fichier depuis une JSP


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 13
    Points : 10
    Points
    10
    Par défaut Téléchargement d'un fichier depuis une JSP
    Bonjour,

    Après quelques recherches, je n'ai toujours pas résolu mon problème donc je me permets de poster :

    J'ai une servlet qui crée un fichier CSV à partir d'un ResultSet de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    					File myFile = new File("temp.csv");
    			FileWriter myFileWriter = new FileWriter(myFile);
    			CSVWriter csvWriter = new CSVWriter(myFileWriter);
    			getValuesCSV = stmt.executeQuery("SELECT * FROM "
    					+ variable + interval+ ";");
    			csvWriter.writeAll(getValuesCSV, true);
    			csvWriter.close();
    Je passe ensuite le fichier à ma JSP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    request.setAttribute("Fichier",myFile);
    Et enfin, dans ma JSP, je crée un lien vers mon fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    File monFichier = (File) request.getAttribute("Fichier");
            %>
            <a href="<%=monFichier.toURI().toString()%>" mimetype="application/octet-stream" download><button>Relevés sous format CSV</button></a>
    Mais voila, aucun fichier ne s'ouvre, alors qu'il est bien crée. J'aimerai savoir si je m'y prends correctement pour créer le lien vers le fichier.

    De plus, l'heure du déploiement arrive et j'aimerai savoir si je procède correctement pour que l'utilisateur récupère le fichier?

    Cordialement

  2. #2
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 27
    Points : 37
    Points
    37
    Par défaut
    Je ne pense pas que cette solution fonctionne. Pour la simple et bonne raison que l'URI du fichier que tu mets dans le href de ton lien est l'URI sur le serveur. Or le client n'a pas accès à cette URI. Tu peux vérifier ça en regardant le code source HTML généré par ta JSP.

    Personnellement je m'y serais pris autrement. Je n'aurais pas généré le fichier CSV en amont mais uniquement au clic sur le lien. Donc dans cette solution ton lien pointe vers du code du côté de ton serveur (selon ce que tu utilises côté serveur ça peut être une servlet, une classe Action Struts, ...) qui génère le fichier CSV et le renvoie en tant que réponse HTTP. Attention à bien mettre le bon type MIME (text/csv dans ton cas) dans la réponse HTTP pour déclencher l'ouverture de la bonne boite de dialogue côté client

  3. #3
    Membre à l'essai
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    D'accord je comprends bien la problématique.

    Donc je crée un lien sur ma page jsp "télécharger csv" qui renvoi sur une servlet qui va générer le fichier CSV.
    Mais après cette étape, je ne vois pas vraiment comment réaliser la partie renvoi en tant que réponse HTTP.

    Pourrais-tu m'éclairer?

    Merci beaucoup

  4. #4
    Membre à l'essai
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Voila après quelques recherches :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    			//Envoi du fichier
    			Date today = new Date();
    			SimpleDateFormat formater = new SimpleDateFormat("d-MMMM-yyy");
    			byte[] csv = Files.toByteArray(myFile);	
    			response.setContentType("text/csv");
    			response.setContentLength(csv.length);
    			response.setHeader("Content-Disposition", "attachment; filename="+variable+"-"+site+"-"+formater.format(today)+".csv");
    			ServletOutputStream sortie = response.getOutputStream();
    			sortie.write(csv);
    Merci !

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

Discussions similaires

  1. Lire un fichier d'un poste local depuis une JSP
    Par clavben dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 10/02/2012, 12h01
  2. [XL-2007] Téléchargement d'un fichier depuis une URL (https)
    Par Markorod dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 04/08/2010, 12h00
  3. Téléchargement d'un fichier depuis une URL
    Par Fly3R dans le forum Windows Forms
    Réponses: 22
    Dernier message: 08/07/2007, 19h33
  4. acceder à un fichier xml depuis une jsp
    Par rvfranck dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 04/10/2006, 18h12
  5. [Javamail] Upload fichier depuis une page JSP
    Par matthieulombard dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 01/12/2005, 18h42

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