我是靠谱客的博主 醉熏面包,最近开发中收集的这篇文章主要介绍批量下载二维码并打成zip压缩包,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

@Override
public boolean downLoadImgs(List<Integer> idList, HttpServletRequest request, HttpServletResponse response) {
//1.拿到对应图片地址的url数组
if (CollectionUtil.isEmpty(idList))
throw new CustomException("请输入巡检模板id,多个以逗号隔开");
List<SafeCheck> quickmarks = safeCheckDao.selectBatchIds(idList);
//2.开始批量下载功能
try {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String downloadFilename = df.format(new Date()) + ".zip";//文件的名称
downloadFilename = URLEncoder.encode(downloadFilename, "UTF-8");//转换中文否则可能会产生乱码
response.setContentType("application/octet-stream; charset=UTF-8");// 指明response的返回对象是文件流
response.setHeader("Content-Disposition", "attachment;filename=" + downloadFilename);// 设置在下载框默认显示的文件名
response.setCharacterEncoding("utf-8");
ZipOutputStream zos = new ZipOutputStream(response.getOutputStream());
for (SafeCheck quickmark : quickmarks) {
String basePath = ProjectConfig.getPath();
String fileName = quickmark.getCheckName();
String path = basePath + File.separator + File.separator + fileName + ".jpg";
//生成指定url对应的二维码到文件,宽和高都是300像素
QrCodeUtil.generate(quickmark.getNumber(), 300, 300, FileUtil.file(path));
// 缓冲
zos.putNextEntry(new ZipEntry(path));
BufferedInputStream bufferStream = new BufferedInputStream(new FileInputStream(path));
byte[] buffer = new byte[1024 * 100];
int r = 0;
while ((r = bufferStream.read(buffer)) != -1) {
zos.write(buffer, 0, r);
}
bufferStream.close();
}
zos.flush();
zos.close();
} catch (Exception e) {
System.out.println(e);
throw new CustomException("下载失败");
}
return true;
}

最后

以上就是醉熏面包为你收集整理的批量下载二维码并打成zip压缩包的全部内容,希望文章能够帮你解决批量下载二维码并打成zip压缩包所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部