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 :

Générer un CSV téléchargeable


Sujet :

Servlets/JSP Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 16
    Points : 8
    Points
    8
    Par défaut Générer un CSV téléchargeable
    Bonjour,

    j'ai eclipse qui se trouve en 'c:/eclipse' et le workspace de mon projet en 'e:/workspace/projet'
    lorsque j'essai de créer un fichier dont le chemin est : './fichier' il le crée dans le répertoire eclipse ... y a t il moyen de le créer dans projet?

  2. #2
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Est ce pour un créer un projet/fichier/dossier qui sera ensuite utilisé dans Eclipse ? (Comme un wizard par exemple qui génère un nouveau fichier ?)

  3. #3
    Futur Membre du Club
    Inscrit en
    Août 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    en faites je veux telecharger le fichier par la suite. c'est pourquoi j'essaie de le mettre dans le workspace ...
    mais apparament ce que j'essai de faire est faux vu que lorsque je crée un fichier manuellement et je tente d'y acceder ça ne marche pas.
    faudra suivre peut etre une autre piste?

  4. #4
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Citation Envoyé par memberteam Voir le message
    en faites je veux telecharger le fichier par la suite. c'est pourquoi j'essaie de le mettre dans le workspace ...
    mais apparament ce que j'essai de faire est faux vu que lorsque je crée un fichier manuellement et je tente d'y acceder ça ne marche pas.
    faudra suivre peut etre une autre piste?
    Je vais reformuler ma question : le dossier à créer, est ce qu'il est destiné uniquement à ton application ou est ce que tu veux qu'Eclipse puisse y accéder (entre autre le voir dans le package Explorer ...)

  5. #5
    Futur Membre du Club
    Inscrit en
    Août 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    non c'est destiné uniquement à mon application

    à vrai dire mon programme crée des fichiers dans le système de fichiers ce qui est déjà bien. mais là je veux les rendre aussi téléchargeables, c'est pourquoi j'ai pensé à les placer dans le workspace mais sil y a moyen de les télécharger à partir du C: par exemple ça sera mieux (la question là, serait est-ce que le serveur peut accéder au C:\ ? chose que j'en doute fort...)

  6. #6
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Euh ... pourquoi ne pas expliquer la situation tout simplement pour qu'on puisse vraiment t'aider au lieu de deviner comme ça ?
    Quel serveur ? qu'est ce qui se passe ? qu'est ce que tu veux faire, etc. ...

  7. #7
    Futur Membre du Club
    Inscrit en
    Août 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Après avoir bien bidouillé j'ai trouvé la solution

    voilà je vais exposer mon problème et je vais dire comment je l'ai résolu =)

    Mon programme crée des fichiers csv dans mon disque dur, disons dans le repertoire "C:/CSV/" après j'ai voulu le modifier pour avoir un popup de téléchargement pour enregistrer le fichier, pour avoir à la fin du processus deux fichiers, un dans le serveur 'C:/CSV/machin.csv' et l'autre celui que j'ai téléchargé.

    pour avoir le popup d'enregistrement j'ai passé par l'ecriture du fichier dans le flux de la servlet :

    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
     
    public void downloadCSV(String csvFilePath) {
    	String csvFileName = null;
    	if(! csvFilePath.equals(StringUtils.EMPTY_STRING)) {
    		String[] infosFile = csvFilePath.split("/");
    		csvFileName = infosFile[infosFile.length - 1];
    	}
     
    	FacesContext context = FacesContext.getCurrentInstance();
    	ExternalContext ec = context.getExternalContext();
    	HttpServletResponse response = (HttpServletResponse) ec.getResponse();
    	response.reset();
    	response.setContentType("application/csv");
    	response.setHeader("Content-Disposition", "filename=" + csvFileName);
    	response.setHeader("Content-Transfer-Encoding", "binary");
    	try {
    		ServletOutputStream sop =  response.getOutputStream();
     
    		StringBuffer sb = new StringBuffer();
    	    BufferedReader in = new BufferedReader(new FileReader(csvFilePath));
    	    String s;
    	    while((s = in.readLine()) != null) {
    	    	sop.write(s.getBytes());
    	    	sop.write("\n".getBytes());
    	    }
    	    in.close();
    	sop.flush();
    	} catch (IOException e1) {
    		// TODO Auto-generated catch block
    		e1.printStackTrace();
    	}
    	context.responseComplete();
    }
    avec csvFilePath c'est le chemin de mon fichier retourné par la méthode de creation des csv

    voila, j'ai mal orienté ma question dès le début donc désolé pour ça djo.mos et merci pour l'intérêt que t'as apporté à mon sujet

    Moralité de tout ça : Ne pas penser à placer un fichier à télécharger dans le workspace parcek'il y a d'autres moyens

    et j'espère aussi que cette solution aidera d'éventuels cas similaires dans le futur. je sais pas si je peux changer le titre du sujet ou pas mais je vais essayer

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

Discussions similaires

  1. Générer un csv disposant de plusieurs feuilles
    Par DanaX dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 27/11/2008, 16h41
  2. Générer un csv dans une popup avec IE et Firefox
    Par valocius dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/10/2007, 09h15
  3. Générer fichier CSV PL-SQL
    Par refrider dans le forum SQL
    Réponses: 5
    Dernier message: 31/08/2007, 15h36
  4. [CSV] Générer un CSV automatique de ma base en PHP
    Par guy2004 dans le forum Langage
    Réponses: 3
    Dernier message: 28/03/2007, 09h29
  5. Générer un fichier téléchargeable -> quel chemin?
    Par seb.ch dans le forum Struts 1
    Réponses: 2
    Dernier message: 05/07/2006, 23h08

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