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();
}
//直接存入ZipOutputStream 下载
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);
}
}
相关推荐
总结来说,"Java多个文件根据URL下载后打包zip导出"涉及的技术主要包括:网络请求、文件I/O、文件打包、HTML交互以及异步处理。理解这些知识点,可以帮助开发者构建一个功能完备的文件下载和打包系统。
标题 "jquery打包,生成并下载zip文件" 描述了一个使用jQuery技术在前端将图片文件打包成ZIP文件并供用户下载的场景。这个过程无需后端服务器的介入,从而减轻了服务器的压力并提高了用户体验。让我们详细了解一下这...
在.NET框架中,C#提供了一种方便的方式来处理文件打包,特别是将多个文件压缩到一个ZIP文件中。这个过程可以通过System.IO.Compression命名空间中的ZipArchive类来实现。本篇文章将详细讲解如何使用C#来创建ZIP文件...
本资源提供的"将一个目录内的内容打包到zip文件以及将zip文件解压到某个目录(ZipPack).zip"是一个Windows下的C++实现,它利用了zlib库来处理zip文件的相关操作。下面将详细阐述涉及的知识点。 1. **C++编程语言**:...
### Java 打包目录文件为 ZIP 的实现方法 在 Java 中,经常需要处理文件压缩与解压的操作。本文将详细介绍如何使用 Java 实现目录文件的 ZIP 压缩功能,并提供一个具体的示例代码。 #### 核心概念 1. **Java Zip ...
综上所述,"生成excel并打包成zip文件"这个任务涉及到使用Java编程语言,特别是Apache POI库来生成Excel文件,再结合Java标准库的压缩功能将Excel和文本文件打包成ZIP。整个过程涉及到了文件的创建、写入、压缩和...
PHP提供了`ZipArchive`类,允许开发者方便地创建、修改和读取ZIP文件。下面我们将详细探讨如何使用PHP的`ZipArchive`类来实现文件夹打包成ZIP压缩包。 首先,确保你的PHP环境已经安装了`zip`扩展。在大多数默认配置...
本文将详细介绍如何使用PHP来解压RAR文件以及打包ZIP文件,并提供相关源码和Windows环境下的DLL文件支持。 首先,PHP自身并不直接支持RAR格式的处理,但可以通过第三方库如PEAR的`Archive_Rar`来实现。`Archive_Rar...
本文将详细讲解如何使用Java实现将多目录多层级的文件打成ZIP包,以及如何解压这些ZIP包。我们将主要关注`FileUtils.java`这个类,以及依赖的`commons-compress-1.1.jar`库。 `commons-compress-1.1.jar`是Apache ...
我们先来看看如何将多个文件打包成一个ZIP文件。 1. **打包文件到ZIP** - 首先,创建一个`ZipOutputStream`对象,它需要一个`FileOutputStream`作为参数,指定输出的ZIP文件路径。 - 然后,对于每个要打包的文件...
ZIP文件通常包含一个中央目录,存储了所有压缩文件的元数据,如文件名、时间戳、压缩方法以及在ZIP文件内的位置。此外,每个文件的压缩数据分布在文件的前面部分。 1. **读取ZIP文件头**:解压过程的第一步是识别...
`ZipOutputStream`用于创建和写入ZIP文件,而`ZipEntry`代表ZIP文件中的一个条目(可以是单个文件或目录)。 2. **创建ZipOutputStream**:首先,你需要创建一个`FileOutputStream`对象来指向你要创建的ZIP文件。...
例如,使用Servlet技术,可以创建一个专门处理下载请求的服务,读取指定的Zip文件并将其响应给客户端。以下是一个简单的Servlet示例: ```java import javax.servlet.*; import javax.servlet.http.*; import java....
在循环中,我们使用`str_replace()`函数移除文件路径中的根目录,然后使用调整后的路径调用`ZipArchive::addFile()`,这样ZIP文件中的文件就不会带有根目录路径了。 需要注意的是,这种方法适用于文件都在同一根...
本项目聚焦于使用C++来处理文件操作,具体包括解压ZIP文件和复制文件到另一目录。以下是对这些知识点的详细说明: 1. **解压ZIP文件**: ZIP是一种常见的文件压缩格式,它允许将多个文件和目录打包成一个单一的可...
例如,可以读取文件的一部分,压缩后写入ZIP文件,然后再继续读取下一部分,直到文件结束。 7. **跨平台兼容性**:由于ZIP格式的通用性,它在各种操作系统上都能很好地工作,包括Windows、Linux和macOS。因此,编写...
在本篇中,我们将深入探讨如何使用cpp-pkg2zip工具来解密pkg文件并将其打包成zip文件,这是一个与C/C++编程相关的技术实践。 cpp-pkg2zip是一个开源项目,由开发者mmozeiko编写,用于处理PS Vita的pkg文件。这个...
5. **文件打包成ZIP**: Java内置的java.util.zip包提供了ZipOutputStream类,可以用来创建ZIP文件。将生成的多个Excel文件添加到ZipOutputStream,最后生成一个ZIP文件。这样用户只需下载一个ZIP文件,解压后即可...
而在`ExtractFiles()`方法中,我们读取ZIP文件,解压到指定的目录。 3. **使用示例** 创建ZIP文件的代码示例可能如下: ```csharp using System.IO; using System.IO.Compression; public static void ...
要解压缩ZIP文件,首先需要使用`JSZip.loadAsync`方法读取ZIP文件内容,然后可以遍历ZIP对象的`files`属性来访问每个文件。可以获取文件内容,或者将其保存到本地。 3. **文件重命名** 如果需要重命名文件,可以...