Télécharger un fichier PDF depuis une jsf (JBOSS)
Bonjour à tous.
Ma question est simple... mais pénible! J'ai un pdf (une notice) à mettre à dispo aux utilisateurs via un bouton de téléchargement.
Cela me donne ceci:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| public static void viewPdf() {
String filename = "GestionBT/faces/docs/GU30282.pdf";
// use your own method that reads file to the byte array
File f = new File(filename);
byte[] pdf = read(f);
FacesContext faces = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) faces.getExternalContext().getResponse();
response.setContentType("application/pdf");
response.setContentLength(pdf.length);
response.setHeader( "Content-disposition", "inline; filename=\""+filename+"\"");
try {
ServletOutputStream out;
out = response.getOutputStream();
out.write(pdf);
} catch (IOException e) {
e.printStackTrace();
}
faces.responseComplete();
}
[/B] |
Chose qui fonctionne... sauf que le chemin (et celui relatif) ne fonctionnent pas! Pourquoi? Parce que si je consulte les chemins, j'obtiens ceci:
Citation:
1) E:\env_Dev\servers\jboss-4.0.3SP1\bin\GestionBT\faces\docs\GU30282.pdf
2) GestionBT\faces\docs\GU30282.pdf
donc on pointe dans le \bin de JBoss, et non dans le deploy de celui-ci (ce qui serait bien plus logique!).
Etant donné que je dev sous Windows, je ne veux pas de chemin "en dur", mais est-il possible d'identifier le path de déploiement de l'appli web? (soit, là temporairement dans mon cas :
Citation:
E:\env_Dev\servers\jboss-4.0.3SP1\server\default\tmp\deploy\tmp29054GestionBT-exp.war\docs