bonjour,
je voudrai faire un bouton qui permette a l'utilisateur de télécharger un fichier nommé truc.txt, mais comment faire ?!?si vous avez une idée...
merci d'avance
bonjour,
je voudrai faire un bouton qui permette a l'utilisateur de télécharger un fichier nommé truc.txt, mais comment faire ?!?si vous avez une idée...
merci d'avance
--Bean.java
Code : Sélectionner tout - Visualiser dans une fenêtre à part <h:commandButton action="#{bean.download}"/>
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 public void dowload(){ FacesContext context = FacesContext.getCurrentInstance(); HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse(); String fileName="nom.txt"; response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ""); OutputStream out; try { out = response.getOutputStream(); // ajouter le flux text dans la response out.close(); context.responseComplete(); } catch (IOException e) { e.printStackTrace(); }
Articles: Richfaces - JBosstools pour JSF.
es tu sur de rien n'avoir oublié, j'exécute ton code mais ne se passe rien, mon nom de fichier est C:/xa.txt et il existe bien, et je passe bien dans la méthode, arf, et je ne vois pas quoi modifer...![]()
le code n'est pas complet..
il faut lire ton ficher..et passer le flux de données dans la response..
utilise les classe java.io
un truc dans le genre:
une autre solution
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 InputStream in = new BufferedInputStream (new FileInputStream("file.txt") ); int ch; while ((ch = in.read()) !=-1) { out.print((char)ch); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part response.sendRedirect("http://localhost:8080/files/file.txt");
Articles: Richfaces - JBosstools pour JSF.
Hormis le fait que Sniper37 a oublié un n dans download (du code Java), c'est la méthode à utiliser.
Tu dis que ça ne marche pas...
Tu as des erreurs dans les logs ? L'action est-elle bien appelée ?
Nous sommes tous semblables, alors acceptons nos différences !
--------------------------------------------------------------
Liens : Blog | Page DVP | Twitter
Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
Critiques : Apache Maven
l'action est bien appelé, et je n'ai pas d'erreur je vais voir ce qui se passe pas bien et je vous met au jus, et merci encore
pfff, bon je dois pas être bien doué, part le n de download j'ai rien réussi de bien , il faut que je rajoute quoi à ce code si je veux que l'utilisateur ai xaxa.wav,
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 public void download() { logger.debug("METHODE download"); FacesContext context = FacesContext.getCurrentInstance(); HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse(); String fileName="C:/xaxa.wav"; response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ""); OutputStream out; try { out = response.getOutputStream(); out.close(); context.responseComplete(); } catch (IOException e) { logger.error("erreur dans la méthode dowload de la classe FileBean", e); } }
vu que je n'arrive pas à utiliser la méthode précédente j'ai testé celle ci :
mais bon j'ai firefox qui me dit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 ELContext context = FacesContext.getCurrentInstance().getELContext(); HttpServletResponse response= (HttpServletResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse(); try { response.sendRedirect("file://C:/xaxa.txt"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
Firefox ne sait pas ouvrir cette adresse car le protocole (c) n est associé a aucun programme
arf![]()
Articles: Richfaces - JBosstools pour JSF.
c bon j'arrive a télécharger mon fichier son, mais je vois le contenu, un peu galère... , vous faites comment pour modifier le MIME que je vous donne mon code entier
Code : Sélectionner tout - Visualiser dans une fenêtre à part response.setContentType("audio/wav");
Articles: Richfaces - JBosstools pour JSF.
le problème vient du bouton qui appel ma fonction dans le bean, j'utilise un <a4j:commandButton> en faite ce type de bouton n'est pas fait pour la navigation, donc en utilisant un <h:commandbutton> tout fonctionne bien, merci beaucoup à Sniper et aux autres aussi... bye
Partager