读取目录下文件打包zip文件

阅读更多


import java.io.File; 
import java.io.FileInputStream; 
import java.io.IOException; 
import java.util.Date; 
 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import java.util.zip.*; 
public class BatchDownload extends HttpServlet { 
 
public BatchDownload() { 
  super(); 

 

//直接存入ZipOutputStream 下载
public void doGet(HttpServletRequest request, HttpServletResponse response) 
   throws ServletException, IOException { 
  response.setContentType("APPLICATION/OCTET-STREAM"); 
  response.setHeader("Content-Disposition","attachment; filename="+this.getZipFilename()); 
  System.out.println("in BatchDownload................");  
  ZipOutputStream zos = new ZipOutputStream(response.getOutputStream());    
     File[] files = new File[2]; 
     files[0]=new File("D:/OptiCM-POC/KDKK3Project/KDKK/images/1.jpg"); 
     files[1]=new File("D:/OptiCM-POC/KDKK3Project/KDKK/images/2.jpg"); 
     zipFile(files, "", zos);    
     zos.flush();    
     zos.close();    
 

private void zipFile(File[] subs, String baseName, ZipOutputStream zos) throws IOException {      
      for (int i=0;i
       File f=subs[i]; 
       zos.putNextEntry(new ZipEntry(baseName + f.getName()));    
       FileInputStream fis = new FileInputStream(f);    
       byte[] buffer = new byte[1024];    
       int r = 0;    
       while ((r = fis.read(buffer)) != -1) {    
           zos.write(buffer, 0, r);    
       }    
       fis.close();  
      } 

private String getZipFilename(){ 
  Date date=new Date(); 
  String s=date.getTime()+".zip"; 
  return s; 

 
public void doPost(HttpServletRequest request, HttpServletResponse response) 
   throws ServletException, IOException { 
  this.doGet(request, response); 

}  

 

你可能感兴趣的:(zip)