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 de fichier XML


Sujet :

Servlets/JSP Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 36
    Par défaut Téléchargement de fichier XML
    Bonjour,

    J'essaie sans succès de forcer un téléchargement de fichier XML dans une jsp.
    (download, pas upload).
    Soit il me l'ouvre dans le navigateur, ou il refuse de le reconnaître.

    J'ai tenté tout un tas de trucs divers et variés mais rien ne fonctionne.
    Avez vous un exemple? des conseils ? la solution ?

    Merci par avance !

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur Informatique et Réseaux
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Informatique et Réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut
    Bonjour,

    Moi j'ai procédé ainsi:

    1) je récupère l'"OutputStream" de ma "HttpServletResponse":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OutputStream os = response.getOutputStream();
    2) j'utilise le navigateur pour télécharger:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    response.setHeader("Content-Disposition", "attachment;filename=monFichier.xml");
    3) Je créé dans l'"OutputStream" le fichier avec l'api qui va bien.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Document doc = new Document(PageSize.A4);
    writer = PdfWriter.getInstance(doc, os);//l'api pdf pour moi
    4) je ferme mon "OutputStream":

    Voila, j'espère t'avoir aidé.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 36
    Par défaut
    Heu en fait, ceci doit très bien fonctionner pour un PDF, mais j'ai quelque problèmes avec le fait que ce soit un XML.

  4. #4
    Membre éclairé
    Homme Profil pro
    Ingénieur Informatique et Réseaux
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Informatique et Réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut
    Dans un OutputStream tu mets ce que tu veux, donc ça devrait fonctionner avec les fichiers xml qui sont, comme les pdf, des tableaux de bytes.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 36
    Par défaut
    en fait je pense que je ne comprends pas l'étape 3, j'ai vraiment du mal avec les stream

  6. #6
    Membre éclairé
    Homme Profil pro
    Ingénieur Informatique et Réseaux
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Informatique et Réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut
    En fait mon writer qui utilise mon stream est spécifique à mon api pdf (itext). Comment tu créés ton fichier xml toi?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 36
    Par défaut
    Il est crée via JDOM. Mais au moment ou je propose de le télécharger, il est déjà créé depuis longtemps.

  8. #8
    Membre éclairé
    Homme Profil pro
    Ingénieur Informatique et Réseaux
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Informatique et Réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut
    Ah oki, il faudrait le mettre dans le stream du coup. Tu dois avoir un méthode liée à l'objet de ton fichier qui te permet de le mettre dans le stream: du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    byte[] xmlByte = monFichierXml.getByteArray();
    OutputStream os = response.getOutputStream();
    os.write(xmlByte);
    je pense que ça devrait se rapprocher de ça.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 36
    Par défaut
    C'est exactement ce principe que j'utilise sur mon fichier excel
    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
     
    response.setContentType ("application/msexcel");
    response.setHeader ("Content-Disposition", "attachment; filename=\""+nomFichier+"\"");
     
    String fichier = request.getParameter("fichier");
    InputStream in = new FileInputStream(new File(fichier));
     
    PrintWriter outs = response.getWriter();
    	try {
    		int bit = in.read();
    		while ((bit) >= 0) {
    			outs.write(bit);
    		 	bit = in.read();
    		}
    	}catch (Exception e) {
     
    outs.flush();
    outs.close();
    in.close();
    Ce qui fonctionne trés bien pour mes excel, mais rien a faire avec les XML, en changeant biensure le content type

  10. #10
    Membre éclairé
    Homme Profil pro
    Ingénieur Informatique et Réseaux
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Informatique et Réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut
    Je ne vois pas pourquoi cela ne fonctionne pas avec des fichiers xml.

    Si quelqu'un d'autre à la réponse à cette question, merci d'avance, là je suis aussi bloqué que kangouroub.

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 36
    Par défaut
    Voici un petite solution qui fonctionne !!!

    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
     
    <%@page import="java.io.PrintWriter"%>
    <%@page import="java.net.URL"%>
    <%@page import="java.io.File"%>
    <%@page import="java.io.FileInputStream"%>
    <%@page import="java.io.InputStream"%>
    <%@page import="com.leaderinfo.novanet.navigation.IUserNavigation"%>
    <%
                 String fichier = request.getParameter("fichier");
                 response.setContentType ("text/plain");
                 response.setHeader ("Content-Disposition", "attachment; filename=\"singe.xml\"");
                 InputStream in;
                 in = new FileInputStream(new File("D:/singe.xml"));
                 PrintWriter outs = response.getWriter();
                 try {
                        int bit = in.read();
                        while ((bit) >= 0) {
                               outs.write(bit);
                              bit = in.read();
                     }
                 }catch (Exception e) {
                 }
                 outs.flush();
                 outs.close();
                 in.close();
    %>
    En fait je passais juste au mauvais chemin .... invisible dans cet exemple vu que j'ai simplifié tout le traitement. Mais ceci fonctionne !

  12. #12
    Membre éclairé
    Homme Profil pro
    Ingénieur Informatique et Réseaux
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Informatique et Réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut
    Parfait, merci pour ton retour d'une solution.

    Ps: penses au bouton résolu.

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

Discussions similaires

  1. Téléchargement automatique de fichier XML
    Par webshop2 dans le forum ASP
    Réponses: 0
    Dernier message: 04/09/2013, 10h19
  2. Téléchargement de fichiers XML depuis un URL http
    Par jockhip12 dans le forum Langage
    Réponses: 2
    Dernier message: 28/05/2012, 11h51
  3. Téléchargement de fichier xml
    Par IceSpiN dans le forum Delphi .NET
    Réponses: 3
    Dernier message: 05/05/2006, 19h19
  4. [SOAP][XML][C#.NET] Téléchargement de fichiers XML
    Par juniorAl dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 27/06/2005, 09h35
  5. Balises HTML dans un fichier XML
    Par Bastet79 dans le forum XML/XSL et SOAP
    Réponses: 12
    Dernier message: 04/09/2002, 15h29

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