码上敲享录 > java入门知识分享 > java压缩多个文件到压缩包,并下载到浏览器

java压缩多个文件到压缩包,并下载到浏览器

上一章章节目录下一章 2018-07-22已有3326人阅读 评论(0)

java如何压缩多个文件到压缩包,并下载到浏览器?


解决方法:

完整的方法如下,很简单,亲试有效,极力推荐。

我是以流作为文件,而不是file,循环把所有pdf文件压缩到pdf.zip压缩包中。

1.前端方法

window.open('/downLoadZipFile');

2.后台方法

   @ResponseBody
   @RequestMapping("/downLoadZipFile")
   public void downLoadZipFile(String list,HttpServletRequest request,HttpServletResponse response) throws IOException{
       response.setContentType("application/octet-stream");
       response.setHeader("Content-Disposition", "attachment; filename=pdf.zip");
       ZipOutputStream zos = null;
       try {
           zos = new ZipOutputStream(response.getOutputStream())
           for(int i=0;i<array1.length;i++) {//array1是循环把文件流添加到压缩包中
               InputStream input = genPdf(c_id, fileName);//genPdf方法自己定义,获取文件流
               zos.putNextEntry(new ZipEntry(i+".pdf")) ; //压缩文件名称 设置ZipEntry对象
                    zos.setComment("
www.mldnjava.cn") ;  // 设置注释
               int temp = 0 ;
               while((temp=input.read())!=-1){ // 读取内容
                           zos.write(temp) ;    // 压缩输出
               }
               input.close() ; // 关闭输入流
           }

       } catch (Exception e) {
           e.printStackTrace();

       } finally {
           // 关闭流
           try {
               if (null != zos){
                   zos.flush();
                   zos.close();
               }
           } catch (IOException e) {
               e.printStackTrace();
           }
       }

}


本文地址:http://www.yayihouse.com/yayishuwu/chapter/1337

向大家推荐《Activiti工作流实战教程》:https://xiaozhuanlan.com/activiti
0

有建议,请留言!

  • *您的姓名:

  • *所在城市:

  • *您的联系电话:

    *您的QQ:

  • 咨询问题:

  • 提 交