JAVA ZIP压缩打包下载

来源:互联网 发布:msdb系统数据库 编辑:程序博客网 时间:2024/04/25 06:19
Java代码  收藏代码
  1. package com.kedacom.kdkk.controller.querymanager;  
  2.   
  3. import java.io.File;  
  4. import java.io.FileInputStream;  
  5. import java.io.IOException;  
  6. import java.util.Date;  
  7.   
  8. import javax.servlet.ServletException;  
  9. import javax.servlet.http.HttpServlet;  
  10. import javax.servlet.http.HttpServletRequest;  
  11. import javax.servlet.http.HttpServletResponse;  
  12. import java.util.zip.*;  
  13. public class BatchDownload extends HttpServlet {  
  14.   
  15.  public BatchDownload() {  
  16.   super();  
  17.  }  
  18.   
  19.  public void doGet(HttpServletRequest request, HttpServletResponse response)  
  20.    throws ServletException, IOException {  
  21.   response.setContentType("APPLICATION/OCTET-STREAM");  
  22.   response.setHeader("Content-Disposition","attachment; filename="+this.getZipFilename());  
  23.   System.out.println("in BatchDownload................");   
  24.   ZipOutputStream zos = new ZipOutputStream(response.getOutputStream());     
  25.      File[] files = new File[2];  
  26.      files[0]=new File("D:/OptiCM-POC/KDKK3Project/KDKK/images/1.jpg");  
  27.      files[1]=new File("D:/OptiCM-POC/KDKK3Project/KDKK/images/2.jpg");  
  28.      zipFile(files, "", zos);     
  29.      zos.flush();     
  30.      zos.close();     
  31.   
  32.  }  
  33.  private void zipFile(File[] subs, String baseName, ZipOutputStream zos) throws IOException {       
  34.       for (int i=0;i<subs.length;i++) {  
  35.        File f=subs[i];  
  36.        zos.putNextEntry(new ZipEntry(baseName + f.getName()));     
  37.        FileInputStream fis = new FileInputStream(f);     
  38.        byte[] buffer = new byte[1024];     
  39.        int r = 0;     
  40.        while ((r = fis.read(buffer)) != -1) {     
  41.            zos.write(buffer, 0, r);     
  42.        }     
  43.        fis.close();   
  44.       }  
  45.  }  
  46.  private String getZipFilename(){  
  47.   Date date=new Date();  
  48.   String s=date.getTime()+".zip";  
  49.   return s;  
  50.  }  
  51.   
  52.  public void doPost(HttpServletRequest request, HttpServletResponse response)  
  53.    throws ServletException, IOException {  
  54.   this.doGet(request, response);  
  55.  }  
  56. }   


引用
下面是web.xml里面对下载zip servlet的配置

Java代码  收藏代码
  1. <servlet>  
  2.     <servlet-name>imgZipDownload</servlet-name>  
  3.     <servlet-class>com.kedacom.kdkk.controller.querymanager.BatchDownload</servlet-class>  
  4.   </servlet>  
  5.   <servlet-mapping>    
  6.     <servlet-name>imgZipDownload</servlet-name>  
  7.     <url-pattern>/zipDownload.do</url-pattern>  
  8.   </servlet-mapping>  


引用
下面是页面调用servlet

Java代码  收藏代码
  1. <form action="zipDownload.do" method="post">  
  2.             <input type="submit" value="下载"/>  
  3.         </form> 
0 0
原创粉丝点击