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

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM