概述
@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压缩包所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复