1 pièce(s) jointe(s)
Téléchargements d'un fichier à partir d'une page jsf
bonjour tous le monde ;
dans une page jsf j'ai un DataTable dans lequel j'ai des commandlink qui permet de telecharger des fichier (pdf , xls ou csv) vous trouvez ci jointmon Datatable.
le problème que j'ai est :lorsque je click sur le commandlink la fenetre qui me demande soit d'enregister soi d'ouvrir soit d'annuler le fichier s'affiche je click sur ouvrir pour vois le fichier mais un message d'erreur m'apparait me disant que "adobe Reader n'a pas pu ouvrir le fichier monfichier.pdf car le type de fichier n'est pas pris en charge ou le fichier est endommager " si j'essay de telecharger un pfd ou une page vierge si j'essaye de télécharger un fichier csv;
l'actionlistener de mon commandlink pour telecharger un pdf est la suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
public String loadPDF(ActionEvent event) throws IOException{
String nomfichier =(String) reportmodel.getRowData();
String reportPath =context+"\\"+nomfichier+".pdf";
File file = new File(reportPath);
byte[] fileData = new byte[(int) file.length()];
HttpServletResponse response = (HttpServletResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse();
response.setHeader("Content-disposition", "attachment;filename="+nomfichier+".pdf");
response.setContentLength(fileData.length);
response.getOutputStream().write(fileData);
response.setContentType("application/pdf");
response.getOutputStream().flush();
response.getOutputStream().close();
return "report";
} |
de meme pour les autres commandlink sauf je change l'extension du fichier a telecharger (au lieu du .pdf je mis .xls ou .csv),et je change l'argument du setContentType
pour le format xls :
Code:
1 2 3 4 5 6 7 8 9 10
|
public String loadXLS(ActionEvent event) throws IOException{
..........
String reportPath =context+"\\"+nomfichier+".xls";
........
response.setHeader("Content-disposition", "attachment;filename="+nomfichier+"_"+reportDate+".xls");
...
response.setContentType("application/vnd.ms-excel");
.....
} |
pour le format cvs :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
public String loadCSV(ActionEvent event) throws IOException{
......
String reportPath =context+"\\"+nomfichier+".csv";
....
response.setHeader("Content-disposition", "attachment;filename="+nomfichier+"_"+reportDate+".csv");
....
response.setContentType("text/csv");
.....
} |
pouvez vous m'indiquer dou vient ce problème d'endommage de mes fichiers
merci infinement