zoukankan      html  css  js  c++  java
  • java如何压缩多个文件到压缩包,并下载到浏览器?

    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();
               }
           }

    }
  • 相关阅读:
    selenuim
    selenium
    selenium
    selenium
    【OSG】 报错:丢失osg100-osgDB.dll
    无法启动此程序,因为计算机中丢失 zlibd.dll【OSG】
    无法打开mfc120.lib
    jquery中的$("#id")与document.getElementById("id")的区别
    arcgis api for javascript 各个版本的SDK下载
    ajax与servlet交互(通过JSON),JAVA的arraylist传到前端的方法
  • 原文地址:https://www.cnblogs.com/chinaifae/p/10189025.html
Copyright © 2011-2022 走看看