Partage
  • Partager sur Facebook
  • Partager sur Twitter

dl fichier, problème "\\"

merci d'avance

Sujet résolu
    15 février 2012 à 9:24:56

    Bonjour à tous

    Voilà j'ai une servlet qui se charge de télécharger un fichier dont je lui donne l'url
    Je sais que dans le chemin je dois mettre des doubles "\\"
    mais j'ai beau en mettre, l'erreur est toujours présente
    pourquoi ?
    voici ma servlet:
    package com.log.servlet;
    
    import java.io.*;
    import java.net.URL;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class dlServlet extends HttpServlet{
    	private static final long serialVersionUID = 1L;
    
    	public void doGet(HttpServletRequest request, HttpServletResponse response)						
    	throws IOException, ServletException{
    		String url = (String)request.getParameter("chemin");
    		String as = new String ("\\");
    		String das = new String("\\\\");
    		String realurl =url.replace(as, das);
    		String protocole = (String)request.getParameter("protocole");
    		String filename = (String)request.getParameter("filename");
    		System.out.println("url vaut: "+url);
    		System.out.println("realurl vaut: "+realurl);
    		System.out.println("protocole vaut: "+protocole);
    		System.out.println("filename vaut: "+filename);
    		
    		InputStream is= new FileInputStream(realurl);
    		OutputStream os = response.getOutputStream();
    		response.setHeader("Content-Disposition","attachment;filename="+filename+"");
    		int count;
    		byte buf[] = new byte[4096];
    		while ((count = is.read(buf)) > -1)
    		os.write(buf, 0, count);
    		is.close();
    		os.close();
    	}
    	
    	public void doPost(HttpServletRequest request, HttpServletResponse response)						
    	throws IOException, ServletException{
    		doGet(request, response);
    	}
    }
    


    et pourtant dans la console j'ai bien ceci:
    url vaut: C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\Connexion\fichiers\admin\rapport.txt
    realurl vaut: C:\\Program Files\\Apache Software Foundation\\Tomcat 7.0\\webapps\\Connexion\\fichiers\\admin\\rapport.txt
    • Partager sur Facebook
    • Partager sur Twitter
      15 février 2012 à 10:02:30

      Eh bien pour uploader mon fichier sur mon serveur au début je n'utilisais pas de double slash, ça ne fonctionnait pas
      alors je me suis renseigné et j'ai lu qu'il fallait en mettre
      j'en ai donc mis et hop le téléchargement s'effectuait
      mais depuis peu il ne fonctionne plus
      je ne sais pas pourquoi

      et la console me met ceci:
      java.io.FileNotFoundException: C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\Connexion\fichiers\admin\rapport.txt (Syntaxe du nom de fichier, de répertoire ou de volume incorrecte)

      le fichier est bien à l'emplacement pourtant
      • Partager sur Facebook
      • Partager sur Twitter
        15 février 2012 à 10:25:21

        1/ tu peux mettre des slash à la place des double-backslash. Ça change rien
        2/ Sur le serveur, dans une console, tapes :
        notepad le/chemin/foutni/par/lexception

        Si le fichier ne s'ouvre pas dans Notepad c'est que tu t'es planté dans le nom
        • Partager sur Facebook
        • Partager sur Twitter
          15 février 2012 à 10:32:06

          1) juste des slash, genre: C:/Program Files/Apache Software Foundation/Tomcat 7.0/webapps/Connexion/fichiers/admin/rapport.txt
          ??

          2) le fichier s'ouvre ;)
          • Partager sur Facebook
          • Partager sur Twitter
            15 février 2012 à 10:49:02

            1/ oui
            2/' t'as bien copié collé le chemin indiqué dans l'exception ? pas juste recopié à la main, vraiment copié collé. As tu réellement exécuté notepad sur la même machine que celle où est le serveur ?
            • Partager sur Facebook
            • Partager sur Twitter
              15 février 2012 à 10:53:25

              1/ ok je vais test
              2/ oui, de toute facon je suis sur que mon fichier est là, je suis aussi aller voir directement

              [EDIT] j'ai modifié en mettant de simple slash et c'est comme si la servlet ne prennait pas en compte la variable parce que realurl vaut maintenant: C:/Program Files/Apache Software Foundation/Tomcat 7.0/webapps/Connexion/fichiers/admin/rapport.txt

              et tomcat m'affiche: C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\Connexion\fichiers\admin\rapport.txt

              [EDIT2] j'ai enlevé la variable realurl j'ai mis directement le chemin dans le FileInputStream
              et là ça fonctionne -_-
              je ne sais absolument pas spourquoi
              • Partager sur Facebook
              • Partager sur Twitter

              dl fichier, problème "\\"

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown