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

JSF Java Discussion :

Probleme de telechargement.


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 76
    Par défaut Probleme de telechargement.
    Bonjour, voila j'ai ce code qui me permet de télécharger un fichier son, j'arrive bien à télécharger le fichier mais le seul problème, au lieu que mon navigateur me propose de télécharger le fichier, il me l'affiche c'est à dire que ma page est rempli de caractères incompréhensible, et je ne vois plus quoi modifier pour avoir un téléchargement fonctionnel,

    voila mon code :

    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
     
    	public void download() throws FileNotFoundException
    	{
            logger.debug("METHODE download");
    		FacesContext context = FacesContext.getCurrentInstance();
    		ExternalContext ec = context.getExternalContext();
    		HttpServletResponse response = (HttpServletResponse) ec.getResponse();
     
    		response.reset();
     
    		response.setHeader("Pragma","public");
    		response.setHeader("Expires","0");
    		response.setHeader("Content-Description","File Transfer");
    		response.setHeader("Cache-Control","must-revalidate, post-check=0, pre-check=0");
    		response.setHeader("Cache-Control: private","false");
    		response.setContentType("application/force-download");
    		response.setHeader("Content-Disposition", "attachment; filename=music.mp3");
    		response.setHeader("Content-Transfer-Encoding","binary");
     
     
    		ServletOutputStream sop;
    		try {
    			sop = response.getOutputStream();
     
    			InputStream in = new FileInputStream("C:/music.mp3");
     
    			int ch;
                while((ch = in.read()) !=-1)
                {
                   sop.write(ch);
                }
    			sop.flush();
     
    			context.responseComplete();
    		} 
    		catch (IOException e){e.printStackTrace();}
                 }
    je me casse la tête la dessus depuis vendredi...

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    salut,

    tu aurais pu utiliser le meme post que vendredi, pour suivre le problème du début..
    n'oublie pas le ; après le nom du fichier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    response.setHeader("Content-Disposition", "attachment; filename=music.mp3;");

  3. #3
    Expert éminent
    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 : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    met déjà audio/mp3 pour le content-type, et pour le content-disposition, ajoute des " " autour du nom de fichier

  4. #4
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 76
    Par défaut
    J'ai mis à jour vos modifications et j'ai toujours le m^me problème,

    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
     
    public void download() throws FileNotFoundException
    	{
            logger.debug("METHODE download");
    		FacesContext context = FacesContext.getCurrentInstance();
    		ExternalContext ec = context.getExternalContext();
    		HttpServletResponse response = (HttpServletResponse) ec.getResponse();
     
    		response.reset();
     
    		response.setHeader("Pragma","public");
    		response.setHeader("Expires","0");
    		response.setHeader("Content-Description","File Transfer");
    		response.setHeader("Cache-Control","must-revalidate, post-check=0, pre-check=0");
    		response.setHeader("Cache-Control: private","false");
    		response.setContentType("audio/mp3");
    		response.setHeader("Content-Disposition", "attachment; filename=\"music.mp3\";");
    		response.setHeader("Content-Transfer-Encoding","binary");
     
     
    		ServletOutputStream sop;
    		try {
    			sop = response.getOutputStream();
     
    			InputStream in = new FileInputStream("C:/music.mp3");
     
    			int ch;
                while((ch = in.read()) !=-1)
                {
                   //sop.write(ch);
                   sop.write(ch);
                }
    			sop.flush();
     
    			context.responseComplete();
    		} 
    		catch (IOException e){e.printStackTrace();}

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 76
    Par défaut
    j'ai aussi la description de la requete si ça peut vous aider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    Réponse
    Server	Apache-Coyote/1.1
    Pragma	public
    Expires	0
    Content-Description	File Transfer
    Cache-Control	must-revalidate, post-check=0, pre-check=0, private: false
    content-disposition	attachment; filename="music.mp3";
    Content-Transfer-Encoding	binary
    Content-Type	audio/mp3
    Transfer-Encoding	chunked
    Date	Mon, 22 Sep 2008 15:18:40 GMT

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 76
    Par défaut
    la requete me parait normale, le probleme vient peut être de mon bouton ?!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <a4j:commandButton styleClass="simpleButton" value="Récupérer" action="#{fileBean.download}" style="margin-top:10; margin-right:5px;">
     
    			</a4j:commandButton>

  7. #7
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    Citation Envoyé par solarien Voir le message
    la requete me parait normale, le probleme vient peut être de mon bouton ?!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <a4j:commandButton styleClass="simpleButton" value="Récupérer" action="#{fileBean.download}" style="margin-top:10; margin-right:5px;">
     
    			</a4j:commandButton>
    utilse un <a4j:commandButton/> n'est pas fait pour la navigation..

  8. #8
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    ferme ton outputStream
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    sop.close();
    context.responseComplete();

  9. #9
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 76
    Par défaut
    toujours le même résultat

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

Discussions similaires

  1. probleme pour telecharger un fichier
    Par warubi dans le forum VB.NET
    Réponses: 1
    Dernier message: 03/06/2007, 17h18
  2. Probleme de telechargement d'image bmp
    Par Asmod_D dans le forum SDL
    Réponses: 5
    Dernier message: 29/10/2006, 13h29
  3. probleme de telechargement force
    Par phoeniix07 dans le forum Langage
    Réponses: 4
    Dernier message: 09/06/2006, 16h55

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