J'ai créé un fichier excel grace à jExcel. Je voudrais insérer ce fichier dans une archive zip qui sera renvoyée par ma servlet.
Voici mon code pour la servlet :
protected void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
/* Creation du fichier excel à partir d'une base de données*/
TableauStatistiques tableau = new TableauStatistiques();
recupererParam(req);
table = tableau.creerTable(periode,site,compteur,date1,date2,pilote);
File fichier = creerFichierExcel();
/* Creation du fichier zip et envoi du zip*/
creerZip(fichier,req,res);
}
Et voici le code de ma méthode creerZip :
public void creerZip (File f, HttpServletRequest req, HttpServletResponse res) {
String temp;
try {
FileOutputStream flux = new FileOutputStream(f);
ZipOutputStream zout=new ZipOutputStream(flux);
ServletOutputStream out = res.getOutputStream();
DataInputStream input = new DataInputStream(req.getInputStream());
zout.putNextEntry(new ZipEntry("fichier.xls"));
BufferedOutputStream tamponSortie = new BufferedOutputStream(zout);
DataOutputStream ficDonnees = new DataOutputStream(tamponSortie);
ficDonnees.flush();
zout.closeEntry();
zout.finish();
String zip=flux.toString();
res.setContentType("application/zip");
res.setHeader("Content-Disposition","inline; filename=output.zip;");
out.println(zip);
out.flush();
}
catch (Exception e){
e.printStackTrace();
}
}
Le problème est que le fichier excel créé est bon (il s'ouvre sans problème), alors que le meme fichier extrait de l'archive ne s'ouvre pas (Excel me dit que le fichier n'est pas bon)
Quelqu'un peut-il m'aider ?