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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
String idFichier = request.getParameter("idFichier");
if(idFichier != null){
try {
TaFichiers taFichiers = TaFichiers.getTaFichiers(Long.parseLong(idFichier));
InputStream in = taFichiers.getFichier().getStream();
// Afin de pouvoir exporter en https avec IE
response.setHeader("Pragma", "");
response.setHeader("Cache-Control", "");
// Mettre un type au fichier renvoyé
if ("pdf".equals(taFichiers.getTypeFichier().getExtension().toLowerCase())) {
response.setContentType("application/pdf");
}
else if ("csv".equals(taFichiers.getTypeFichier().getExtension().toLowerCase())) {
response.setContentType("application/vnd.ms-excel");
}
else if ("xls".equals(taFichiers.getTypeFichier().getExtension().toLowerCase())) {
response.setContentType("application/vnd.ms-excel");
}
else if ("doc".equals(taFichiers.getTypeFichier().getExtension().toLowerCase())) {
response.setContentType("application/msword");
}
else if ("pps".equals(taFichiers.getTypeFichier().getExtension().toLowerCase())) {
response.setContentType("application/vnd.ms-powerpoint");
}
response.setHeader("Content-Disposition", "attachment; filename="+taFichiers.getNomFichier());
OutputStream out = response.getOutputStream();
int val = 0;
while((val=in.read())!=-1) {
out.write(val);
}
out.flush();
out.close();
in.close();
return null;
} catch (NumberFormatException e) {
logger.error("l'id du fichier passé en parametre n'est pas un long : "+idFichier);
return mapping.findForward("file.error");
} catch (Exception e) {
logger.error("probleme interne a la base de donnees, table interrgee : TaFichiers avec l'id "+idFichier);
return mapping.findForward("file.error");
}
}
return mapping.findForward("file.error");
} |