页面下载zip包

调用接口:

@RequestMapping("/downloadImgPackage")
@ResponseBody
public void downloadImgPackage(HttpServletRequest request,
                               HttpServletResponse response) {
    List<Attachment> list = attachmentService.select(1);
    StringBuffer sb = new StringBuffer();
    try {
        for (Attachment attachment : list) {
            sb.append(attachment.getAttachUri() + ",");
        }
        //设置服务端向客户端游览器发送文件
        response.setContentType("application/x-download");
        response.addHeader("Content-Disposition", "attachment;filename="+new String( "imagePackage".getBytes("utf-8"), "ISO8859-1" )+".zip");
        OutputStream out = response.getOutputStream();
        response.flushBuffer();
        FileUtil.writeZip(sb, out);
        out.flush();
        out.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

打zip包方法:

    public static void writeZip(StringBuffer sb, OutputStream os) throws IOException {
      String[] files = sb.toString().split(",");
      ZipOutputStream zos = new ZipOutputStream(os);
      byte[] buf = new byte[8192];
      int len;
      for (int i = 0; i < files.length; i++) {
         File file = new File(files[i]);
         if (!file.isFile()) {
            continue;
         }
         ZipEntry ze = new ZipEntry(file.getName());
         zos.putNextEntry(ze);
         BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
         while ((len = bis.read(buf)) > 0) {
            zos.write(buf, 0, len);
         }
         zos.closeEntry();
      }
//        zos.setEncoding("GBK");
      zos.closeEntry();
      zos.close();
   }
页面调用方法:
function downloadImg() {
    var code = $("#code").val();
    window.open(ctx+"hnty/attachment/downloadImgPackage?relationType=06&relationTypeId="+code);
​​​​​​​}

 

©️2020 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值