Try zos.flush() instead of close()
It is not your responsibility to close the servlet output stream, it is the
container's.

2008/10/13 Ariel <[EMAIL PROTECTED]>

> Hi Everybody:
> I 'm using struts 1.2 version, in my web application I have a chart where
> the user can add several files that are located in the server, then in a
> hiperlink the user decide to download the several files in a zip file. I
> implemented this functionalities, in Mozilla Firefox works perfectly but
> with Internet Explorer doesn't work.
> Please could you help to find how to do it correctly to make it works in
> both browsers ???
> Here I post a piece of my code:
> <Code>
>             ServletContext      context  =
> getServlet().getServletContext();
>             String              mimetype =
> context.getMimeType(filename);
>             resp.setContentType( (mimetype != null) ? mimetype
> :"multipart/mixed" );
>             resp.setHeader( "Content-Disposition", "attachement;
> filename=\"chart.zip\"" );
>             ZipOutputStream zos = new
> ZipOutputStream(resp.getOutputStream());
>             ChartStructure chart = (ChartStructure)
> req.getSession().getAttribute("chart");
>            byte[] buf = new byte[1024];
>            int len;
>             for (Iterator<Files> iterator = chart.iterator();
> iterator.hasNext();){
>                 Files elem = iterator.next();
>                 ZipEntry zipEntry = new
> ZipEntry(elem.getPhisicalFileName());
>                 String filepath = elem.getDownloadLink();
>                FileInputStream fin = new FileInputStream(path);
>                BufferedInputStream in = new BufferedInputStream(fin);
>                zos.putNextEntry(zipEntry);
>                while ((len = in.read(buf)) >= 0) {
>                   zos.write(buf, 0, len);
>                }
>                in.close();
>                zos.closeEntry();
>            }
>             zos.close();
> </Code>
>
> I hope you can help me.
> Greetings
> Ariel
>

Reply via email to