Bonjour,
Dans mon application, j'aimerais pouvoir, en cliquant sur un lien, télécharger un fichier qui se trouve sur mon serveur. Le problème est qu'il m'ouvre le fichier dans mon browser alors que j'aimerais avoir un popup avec la botie de dialogue me proposant de le sauver ou de l'ouvrir.
Voici mon code actuel
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 public void downloadFile(ActionEvent event){ File file = new File(fileName); ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext() ; ServletContext context = (ServletContext) externalContext.getContext(); HttpServletResponse response = (HttpServletResponse) externalContext.getResponse(); response.setContentType("application/csv"); String downloadFile = fileName ; response.addHeader("Content-Disposition", "attachment; filename=\"" + downloadFile + "\""); byte[] buf = new byte[1024]; try{ long length = file.length(); BufferedInputStream in = new BufferedInputStream(new FileInputStream(file)); ServletOutputStream out = response.getOutputStream(); response.setContentLength((int)length); while ((in != null) && ((length = in.read(buf)) != -1)) { out.write(buf, 0, (int)length); } in.close(); out.flush(); out.close(); FacesContext.getCurrentInstance().responseComplete(); }catch (Exception exc){ exc.printStackTrace(); } }
Partager