引用
java自带的类库,实现zip压缩打包文件下载,注:不支持中文文件名(下面是我的完整下载servlet下载类代码,改下自己的包名即可使用)
package com.kedacom.kdkk.controller.querymanager;
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();
}
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<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();
}
}
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);
}
}
引用
下面是web.xml里面对下载zip servlet的配置
<servlet>
<servlet-name>imgZipDownload</servlet-name>
<servlet-class>com.kedacom.kdkk.controller.querymanager.BatchDownload</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>imgZipDownload</servlet-name>
<url-pattern>/zipDownload.do</url-pattern>
</servlet-mapping>
引用
下面是页面调用servlet
<form action="zipDownload.do" method="post">
<input type="submit" value="下载"/>
</form>
分享到:
相关推荐
应用java来压缩需要打包的文件,在系统管理中将毛哥路径或者某个文件夹压缩成zip包
java打包压缩ZIP 里面详细讲解了如何将一个文件打包 如何解压一个包
主要为大家详细介绍了java后台批量下载文件并压缩成zip下载的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
super("用ZIP压缩多个文件"); //调用父类构造函数 fileChooser=new JFileChooser(); //实例化文件选择器 files=new Vector(); //实例化文件数据Vector fileList=new JList(files); //实例化已选择文件...
javaZIP压缩源代码,可以很方便的进行打包.源码含有详细的注释.
Java根据Url把多个文件下载到指定的文件夹目录,然后再将文件夹目录打包成zip导出,包括子目录也可以打包,有个简单的导出html页面,点击导出按钮下载zip。
java压缩中文处理使用org.apache.tools.zip已经打包成jar 只要放在LIB文件夹下,然后在JSP 或 JAVA 里引用即可。 <%@ page language="java" import="java.sql.*,java.io.*,org.apache.tools.zip.Zip" pageEncoding=...
包含了使用的jar包,以及一个Java类,实现了使用Java对多目录多层级的文件进行打包,以及对ZIP包进行解压缩的操作。
java控制指定路径下的文件夹压缩成zip格式。 java将zip压缩包解压成为文件夹。直接使用io流进行操作,不需借助其他jar包
java 实现指定目录下的文件打包zip格式 并指定存放zip包
java中将多个excel打包成zip文件下载.rar
因项目需求,需要在线生成world文档,并且需要批量生成world,那么就可以用zip打包所有world进行下载,这里提供的是一个简单的demo,如需了解在线生成文件,并打包到zip,可以问我
JAVAWEB项目,实现将服务器文件打包成.zip文件,然后再下载到本地上。
主要为大家详细介绍了java实现批量下载、将多文件打包成zip格式下载,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
zip,然后下载删除源文件与压缩文件。 3、可以指定文件都为最后生成为zip文件下载,且删除源文件。 1、压缩文件或者目录(只是压缩不删除):zipFileOrDirectory 2、程序自动判断如果是文件那么就是源文件下载,...
Java实现Zip压缩文件操作的工具类 文章介绍:https://blog.csdn.net/rongbo91/article/details/117747042 (可作为Jar依赖包直接使用) 1、项目使用前,请进入rdc-bom目录下,执行mvn clean install命令 2、可...
NULL 博文链接:https://qifan.iteye.com/blog/1409657
NULL 博文链接:https://rd-030.iteye.com/blog/1912370
可以进行单压缩或分卷压缩(后续会基于WinRAR6.02版本封装解压工具) ...注:由于WinRAR控制台模式不支持定义压缩文件格式,故压缩后的文件均为rar格式(若需要设置zip格式可以自行封装,开启WinRAR后台执行模式即可)