Récupération de l'OutputStream (response est le paramètre HttpServletResponse de ta méthode doGet) :
Code :
- OutputStream out = response.getOutputStream();
|
Dans zipIt, tu peux remplacer le FileOutputStream (fos) par out.
Code :
- public ZipOutputStream zipIt(OutputStream out) {
- //String sReturn = "sReturnb_KO";
- byte[] buffer = new byte[1024];
- ZipOutputStream zos = null;
- try{
- // branchement du ZipOutputStream sur out
- zos = new ZipOutputStream(out);
- for(String file : this.fileList){
- System.out.println("File Added : " + file);
- ZipEntry ze= new ZipEntry(file);
- zos.putNextEntry(ze);
- FileInputStream in =
- new FileInputStream(SOURCE_FOLDER + File.separator + file);
- System.out.println("FileInputStream : "+SOURCE_FOLDER + File.separator + file);
- int len;
- while ((len = in.read(buffer)) > 0) {
- zos.write(buffer, 0, len);
- }
- in.close();
- }
- zos.closeEntry();
- zos.close();
- //sReturn = "sReturnb_OK";
- System.out.println("Done" );
- }catch(IOException ex){
- ex.printStackTrace();
- } finally {
- // fermeture du flux
- if (zos != null) {
- try {
- zos.flush();
- zos.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- return zos;
- }
|
NB : j'ai aussi ajouté la fermeture du flux dans le bloc finally
Message édité par Bidem le 26-03-2014 à 12:15:05