在日常项目开发中,我们会经常遇到,上传下载以及打包的常用功能,本节中就如何利用JAva自带的类库,实现zip压缩打包文件下载进行详细说明。注:不支持中文文件名,可在上传时就重命名文件名称.(下面是我的完整项目下载类代码,改下自己的包名即可使用)。

正题:

中间层Java代码:

package com.etong.out.web;import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.SQLException;
import java.util.Date;
import java.util.HashMap;
import java.util.zip.ZipEntry;
import java.util.zip.ZipException;
import java.util.zip.ZipOutputStream;public class ZipUtils {private String fileName;public void zipFile(File[] subs, String baseName, ZipOutputStream zos) throws IOException {       for (int i=0;i<subs.length;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(); zos.flush();     zos.close();}  } public String getZipFileName() {return fileName;}public void setZipFileName(String fileName) {  this.fileName = fileName+new Date().getTime()+".zip";}}

JSP引用方法:

<%SimpleDateFormat f = new SimpleDateFormat("yyyyMMdd_hhMMss");response.setHeader("Content-disposition","attachment;filename=JMS"+f.format(new Date())+".zip");   ZipOutputStream zos = new ZipOutputStream(response.getOutputStream());List jmsList = (List)workflowCommonDao.getListResult("OutNet.getNsrJmsWjxx",null);  File[] files = new File[jmsList.size()];for(int i=0; i<jmsList.size(); i++){String inputStream = ((HashMap)jmsList.get(i)).get("WJDZ").toString();files[i]=new File(inputStream);  } ZipUtils zipUtil = new ZipUtils();zipUtil.zipFile(files,"JmsFiles/", zos);     zos.flush();     zos.close();%>

根据上述内容轻松完成了文件打包下载功能,这里JSP页面通过从数据库里面获得文件地址(当然也可以自己传相关文件路径)将相关文件打包至定义的zip包中,以供客户端进行下载保存!

Java如何实现文件打包下载功能相关推荐

  1. Java简单的文件打包下载

    案例: @ResponseBody@RequestMapping("/templateDownload")public void templateDownload(HttpServ ...

  2. java 文件打包下载

    话不多说,直接上代码 方法需要传入文件目录,比如想打包1目录下的2目录,同时2目录包含3和4目录,name就传入1目录就可以了 打包之后 /*** 文件打包下载** @param src 需要打包的文 ...

  3. java 文件下载代码_java文件下载代码实例(单文件下载和多文件打包下载)

    这篇文章主要介绍了java文件下载代码实例(单文件下载和多文件打包下载),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 最近项目有需要写文件下载相关 ...

  4. 网页实现文件打包下载

    网页实现文件打包下载 前段时间收到需要批量下载文件的需求.一开始是做一个把所有需要下载的文件复制到粘贴板这样就可以去迅雷或者其他下载软件批量下载,但是这样还是不能满足用户的需求. 用户希望一点击就把所 ...

  5. 关于文件导出(下载)功能不兼容IE浏览器的解决方案

    关于文件导出(下载)功能不兼容IE浏览器的解决方案 参考文章: (1)关于文件导出(下载)功能不兼容IE浏览器的解决方案 (2)https://www.cnblogs.com/padaleidelei ...

  6. 关于使用DataGrid的ButtonColumn,动态添加DataGrid列,实现不定列n个文件的下载功能...

    一.使用DataGrid的ButtonColumn,动态添加DataGrid列,实现不定列n个文件的下载功能 在aspx页面中的代码如下: <asp:datagrid id="User ...

  7. php本地文件打包代码,PHP实战:几行代码轻松实现PHP文件打包下载zip

    <PHP实战:几行代码轻松实现PHP文件打包下载zip>要点: 本文介绍了PHP实战:几行代码轻松实现PHP文件打包下载zip,希望对您有用.如果有疑问,可以联系我们. PHP应用 //获 ...

  8. python django下载 功能如何实现_Python中django文件传输下载功能的实现

    Python中django文件传输下载功能的实现,基于Django建立的网站,如果提供文件下载功能,最简单的方式莫过于将静态文件交给Nginx等处理,但有些时候,由于网站本身逻辑,需要通过Django ...

  9. java导出excel并实现下载功能

    java导出excel并实现下载功能 这里我们使用alibaba的依赖包 <dependency><groupId>com.alibaba</groupId>< ...

最新文章

  1. mysql数据库基本操作命令
  2. 安卓手机状态栏 定位服务自动关闭_手机该不该每天关机一次?原来这么多年手机白用了!...
  3. 深入浅出UML类图(一)
  4. poj 3256(DFS)
  5. java学习(112):simpledateformat进行格式化
  6. flowable实战(十三):为了启动流程实例时给流程加一个标题
  7. java中的public,protected,package-private和private之间有什么区别?
  8. 单片机两个正玄波信号的相位差计算_51单片机的定时器/计数器的原理与使用
  9. python 生成器原理_python生成器
  10. jquery 时间相减获取天数_JQuery Datepicker实现JavaScript日期相减的小例子
  11. [转]Android调用so文件(C代码库)方法详解
  12. 史上最简单的Mybatis教程(5天就够了)
  13. 计算机考研804是什么意思,北邮通信考研专业课801和804的选择
  14. mysql字典_mysql常用字典表(完整版)
  15. Java常用的集成开发工具Eclipse和IDEA
  16. 网页怎么预先加载模型_修补预先训练的语言模型
  17. 宋星:误读数据等于自杀
  18. java curator_使用curator实现选举
  19. 产生虚假的用于欺骗的IP数据包程序实践——Teardrop
  20. 什么是Arduino? 了解有关此开源电子平台的信息

热门文章

  1. libVLC 视频缩放
  2. linux内核TCP 滑动窗口,TCP滑动窗口和流控
  3. 9子空间的投影和Ax=b
  4. 计算机职业规划作文英语作文,大学生职业规划英语作文
  5. 事业单位文档管理解决方案
  6. 运营一款电视盒子需要注意什么?
  7. h5端点击复制分享链接
  8. MFC计算器项目——单位换算模块
  9. 【vim】vim行首加入某字符
  10. Linux命令---scp