本篇文章主题:如何批量压缩指定目录的文件成Zip包并下载。
以下附上ZIP压缩打包的关键编码:
友情说明:ZIP打包下载功能,行文中将其作为一个Service服务对外开放。测试验证的话,可自行创建Controller层,建议使用REST风格API,传入HttpServletResponse对象以及指定特定目录下的图片文件名称数据集(数据类型:List),即可完成测试!
public class CompressServiceImpl {
private static final Logger logger = LoggerFactory.getLogger(CompressServiceImpl.class);
/**
* 下载ZIP格式压缩包
*
* @param imageNames 图片名称列表
* @param response 响应体
*/
public void downloadZipArchive(List<String> imageNames, HttpServletResponse response) {
// 存放图片文件的目录所在路径,需自行调整(绝对路径或者相对路径皆可)
String dirPath = "images/";
try {
OutputStream out = customizeResponse(response, String.valueOf(new Date().getTime()), "zip");
ZipOutputStream zipOut = new ZipOutputStream(out);
for (String imageName : imageNames) {