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 :

Problème pour télécharger fichier .csv sous IE


Sujet :

Servlets/JSP Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2008
    Messages : 51
    Points : 33
    Points
    33
    Par défaut Problème pour télécharger fichier .csv sous IE
    Bonjour,
    J'ai une applet qui affiche un tableau de valeur. Je clique sur un bouton pour exporter mon tableau. Grâce à une servlet je crée un fichier .csv sur le serveur. Puis je renvoie sur l'applet le nom du fichier pour qu'une seconde servlet se charge de le lire et de le renvoyer au client pour qu'il puisse le télécharger. Je sais c'est un peu compliqué, j'avais essayé de tout faire dans la même servlet mais ça ne fonctionnait pas!
    Mon problème se situe là : quand je veux récupérer le fichier internet explorer ouvre une page puis la referme instantanément sans me proposer la page de téléchargement du fichier. J'ai essayé sur firefox et ça marche nickel, mais il me le faut sous IE.
    Connaissez-vous ce problème??
    Y a-t-il un moyen de le contrer?
    Julie

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    regarde si ie n'essaie pas de l'ouvrir directement avec Excel, et rate le lancement d'excel. Dans ce cas, faut aller dans la configuration de IE et supprimer l'association csv -> excel pour qu'il te demande quoi faire.

    Si le problème persiste, poste les header http que t'envoie avec ton fichier csv.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2008
    Messages : 51
    Points : 33
    Points
    33
    Par défaut
    Merci pour ta réponse! Mais j'aurais une question...ça se trouve où dans la configuration de IE??

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    préférences -> association de fichiers / mimetypes ou un truc du genre

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2008
    Messages : 51
    Points : 33
    Points
    33
    Par défaut
    Bon alors ça ne fonctionne toujours pas.
    Voilà le code de ma 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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    public class OuvrirFichier extends HttpServlet {
     
    	private static final long serialVersionUID = 1L;
     
    	@Override
    	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
    			throws ServletException, IOException {
    		String nomFichier = req.getParameter("fic");
    		resp.setContentType("application/download");//types.getString("xls"));
    		resp.setHeader ("Content-Disposition", "attachment; filename=\""+nomFichier+"\"" );
    		ServletOutputStream out = resp.getOutputStream(); 
    		File file = null; 
    		BufferedInputStream from = null; 
    		try 
    		{ 
    			//dans mon cas le filepath et le path complet après création d'un temp file 
    			String realPath = this.getServletConfig().getServletContext().getRealPath("/");
    			file = new File(realPath+nomFichier); 
    			resp.setContentLength((int) file.length()); 
    			int bufferSize = 64 * 1024; 
    			long time = System.currentTimeMillis(); 
     
    			try { 
    				from = new BufferedInputStream(new FileInputStream(file), bufferSize * 2); 
    				byte[] bufferFile = new byte[bufferSize]; 
    				for (int i = 0; ; i++) { 
    					int len = from.read(bufferFile); 
    					if (len < 0) 
    						break; 
    					out.write(bufferFile, 0, len); 
    				} 
    				out.flush(); 
    			} finally { 
    				try { from.close(); } catch (Exception e) { } 
    				try { out.close(); } catch (Exception e)  {} 
    			} 
    			time = (System.currentTimeMillis() - time) / 1000; // seconds download 
    			double kb = (file.length() * 1.0 / 1024); 
     
    			if (file != null) 
    				file.delete(); 
    		}   catch (Exception e)   { 
    			e.printStackTrace();
    			return; 
    		} finally { 
    			try {   file.delete();}   catch (Exception ex) {
    				ex.printStackTrace();
    			} 
    		}
    	}
     
    }
    Et le code de mon applet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    String fichier = reponse.readLine();
    url = new URL(Main.serveur+"OuvrirFichier?fic="+fichier);
    Main.applet.getAppletContext().showDocument(url,"new");

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    peux-tu vérifier que IE fait bien une requete au serveur? (via un sniff du réseau, des logs ou un breakpoint dans la servlet). L'url passée lui plait peut etre simplement pas.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2008
    Messages : 51
    Points : 33
    Points
    33
    Par défaut
    Alors j'ai mis des breakpoints à chacune des lignes de ma servlet et aucune ne plante, tout se passe bien... Je ne sais plus quoi faire

  8. #8
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    si tu pointe manuellement ie sur la servlet, ca donne quoi?

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2008
    Messages : 51
    Points : 33
    Points
    33
    Par défaut
    Si j'écris le lien qu'il me renvoie dans la barre de IE ça me l'ouvre correctement.

  10. #10
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    pas d'erreur dans la console java? Ni dans celle de ie?

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2008
    Messages : 51
    Points : 33
    Points
    33
    Par défaut
    Ou se trouve la console de IE?

  12. #12
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    dois y avoir quelque part une console avec les erreur javascript

Discussions similaires

  1. Réponses: 8
    Dernier message: 19/11/2009, 15h42
  2. [Tableaux] Problème pour télécharger un fichier
    Par pierrot10 dans le forum Langage
    Réponses: 5
    Dernier message: 19/02/2007, 18h02
  3. Réponses: 3
    Dernier message: 05/01/2007, 08h58
  4. [SQL] Problème exécution sql pour insertion fichier csv
    Par Kyvin dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 20/08/2006, 17h47
  5. Problème pour Télécharger des fichiers
    Par joce3000 dans le forum C++Builder
    Réponses: 8
    Dernier message: 21/01/2005, 10h30

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