Java实现打包下载BLOB字段中的文件
2015-11-24 19:24
501 查看
概述
web项目的文件打包下载实现;servlet接收请求,spring工具类访问数据库及简化大字段内容获取,org.apache.tools.zip打包。必要提醒:当前总结是继Java实现下载BLOB字段中的文件之后的总结,如有不解之处,请参考之。
核心代码
jdk提供了java.util.zip包,用于实现文件打包的功能,但是对中文名的文件没有很好的支持。org.apache.tools.zip包提供了几乎相同的接口,且额外提供了设置编码的接口。package cn.com.hnisi.fzyw.xzfy.gz.test.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import cn.com.hnisi.fzyw.xzfy.gz.download.service.IZipService; import cn.com.hnisi.fzyw.xzfy.gz.download.service.ZipServiceFactory; public class BatchDownloadFileServlet extends HttpServlet { private static final long serialVersionUID = -1288924386578872984L; /** * SINOBEST 文件打包下载 测试servlet.<br> */ public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { /* 1. 设置响应内容类型 */ response.setContentType("Application/Octet-stream;charset=utf-8"); /* 2. 将文件名加入响应头 */ String zipName = "打包下载" + System.currentTimeMillis() + ".zip"; zipName = new String(zipName.getBytes(), "ISO-8859-1"); response.addHeader("Content-Disposition", "attachment; filename=" + zipName); /* 3. 输出文件内容 */ String systemids = request.getParameter("systemids"); // systemids是多个systemid以逗号分隔拼接而成的字符序列 systemids = ("'" + systemids + "'").replaceAll(",", "','"); String sql = "select CLMC, SQCL from V_FZYWGZ_JK_XZFYSQXX_CL where SYSTEMID in (?)" .replaceFirst("\\?", systemids); String colNameFileName = "CLMC"; String colNameFileContent = "SQCL"; IZipService service = ZipServiceFactory.newInstance().create(); service.write(sql, colNameFileName, colNameFileContent, response.getOutputStream()); /* 4. 关闭流 */ response.getOutputStream().flush(); response.getOutputStream().close(); } }
BatchDownloadFileServlet
相关文章推荐
- eclipse字体设置方法
- 浅谈java代理
- 核心java系列——异常处理
- Java char[]转String的两种方式
- 通过java读取HDFS的数据 (转)
- Java实现下载BLOB字段中的文件
- Eclipse中自动提示的方法参数都是arg0,arg1的解决方法
- 在eclipse的工具栏中不显示Android SDK and AVD Manager
- Java String.split()用法小结
- Java逻辑运算符"&","&&","|","||"
- 【Java】正则表达式
- Java进阶04 RTTI
- java堆栈查找方法之线程篇
- springmvc .ibatis注解Configuration$StrictMap.get(Configuration.java:593)
- JavaMail实现带附件的邮件发送
- Java-log
- 根据表结构生成JavaBean,史上最强最专业的表结构转JavaBean的工具(第7版)
- Java 模仿 C# 字典 一例
- 在Eclipse中使用Maven来创建一个web项目
- springmvc3.0 aop 编程相关教程