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();
}
}
}
java如何压缩多个文件到压缩包,并下载到浏览器?的更多相关文章
- java框架篇---struts之文件上传和下载
Struts2文件上传 Struts 2框架提供了内置支持处理文件上传使用基于HTML表单的文件上传.上传一个文件时,它通常会被存储在一个临时目录中,他们应该由Action类进行处理或移动到一个永久的 ...
- arcgis api 3.x for js 地图加载多个 SHP 图层压缩以及 json 文件展示(附源码下载)
前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 3.x for js:esri 官网 api,里面详细的介绍 arcgis api 3.x 各个类 ...
- java ZIP压缩文件
问题描述: 使用java ZIP压缩文件和目录 问题解决: (1)单个文件压缩 注: 以上是实现单个文件写入压缩包的代码,注意其中主要是在ZipOutStream流对象中创建Z ...
- Java—将文件压缩为zip文件
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import ...
- java生成压缩文件
在工作过程中,需要将一个文件夹生成压缩文件,然后提供给用户下载.所以自己写了一个压缩文件的工具类.该工具类支持单个文件和文件夹压缩.放代码: import java.io.BufferedOutput ...
- Java 多文件压缩成一个文件工具类
简单修改来自博客园勇闯天涯zfc的博客 一.内容 ①使用 Java 将多个文件打包压缩成一个压缩文件: ②主要使用 java.io 下的类 二.源代码:ZIPUtil .java import jav ...
- Java zip 压缩 文件夹删除,移动,重命名,复制
FileUtil.java import java.io.*; import java.util.List; import java.util.zip.ZipEntry; import java.ut ...
- Java ZIP压缩和解压缩文件(解决中文文件名乱码问题)
Java ZIP压缩和解压缩文件(解决中文文件名乱码问题) 学习了:http://www.tuicool.com/articles/V7BBvy 引用原文: JDK中自带的ZipOutputStrea ...
- Java生成压缩文件(zip、rar 格式)
jar坐标: <dependency> <groupId>org.apache.ant</groupId> <artifactId>ant</ar ...
随机推荐
- 开源框架---tensorflow c++ API中./configure步骤细节
u@u160406:~/tf1.13/tensorflow$ git checkout r1.13 分支 r1.13 设置为跟踪来自 origin 的远程分支 r1.13.切换到一个新分支 'r1.1 ...
- python logging记录日志的方式
python的logging模块提供了标准的日志接口,可以通过它存储各种格式的日志,日志级别等级:critical > error > warning > info > deb ...
- de4dot FAQ
How to deobfuscate but make sure metadata tokens stay the same? --preserve-tokens will preserve all ...
- spring框架中的一个字符串的工具类
stringutils.hasText("字符串") 如果字符串里面的值为null, "", " ",那么返回值为false:否则为tr ...
- java中的strictfp的作用
自Java2以来,Java语言增加了一个关键字strictfp,虽然这个关键字在大多数场合比较少用,但是还是有必要了解一下. strictfp 的意思是FP-strict,也就是说精确浮点的意思.在J ...
- xld特征
halcon中什么是xld? xld(eXtended Line Descriptions) 扩展的线性描述,它不是基于像素的,人们称它是亚像素,只不过比像素更精确罢了,可以精确到像素内部的一种描述. ...
- Codeforces Round #603 (Div. 2) A,B,C,D【E题待补】
#include<bits/stdc++.h> using namespace std; #define int long long signed main(){ int _; cin&g ...
- Python获取百度浏览记录
Python模拟百度登录实例详解 http://www.jb51.net/article/78406.htm Python实战计划学习作业2-1 http://blog.csdn.net/python ...
- 强大的捉包工具Fiddler
Fiddler2出现 creation of the root certificate was not successful 错误 http://www.zhaokeli.com/Article/63 ...
- RabbitMQ持久化和非持久化
但是,非持久化要比持久化速度更快. 队列是否需要持久化:看需求