Java 批量生成二维码图片,并打包成可直接下载的zip包(spring boot)
来源:互联网 发布:网络直播你有什么看法 编辑:程序博客网 时间:2024/05/20 11:23
最近做的一个项目中,需要提供给web端一个接口:downloadQr。用到了Google的Zxing框架,版本是3.3.1 。项目使用的是springboot框架。
一、API文档
接口名称:/downloadAllQr
接口描述:批量生成二维码图片,并打包成可直接下载的zip包
请求方式:GET
请求参数:String data
响应内容:zip文件流
二、下面直接上代码
- controller层
import com.google.zxing.WriterException;import org.springframework.web.bind.annotation.GetMapping;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;@GetMapping("downloadAllQr") public void downloadAllQr(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, @RequestParam("data") String data) throws IOException, WriterException { biz.downloadAllQr(httpServletRequest, httpServletResponse, data); }
- biz层 interface
import com.google.zxing.WriterException;import org.springframework.web.bind.annotation.GetMapping;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;void downloadAllQr(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, String data) throws WriterException, IOException;
- biz层 实现
import com.google.common.collect.Lists;import com.google.common.collect.Maps;import com.google.common.collect.Sets;import com.google.gson.Gson;import com.google.zxing.BarcodeFormat;import com.google.zxing.MultiFormatWriter;import com.google.zxing.WriterException;import com.google.zxing.client.j2se.MatrixToImageWriter;import com.google.zxing.common.BitMatrix;import javax.imageio.ImageIO;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.awt.*;import java.awt.image.BufferedImage;import java.beans.IntrospectionException;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.OutputStream;import java.util.stream.Collectors;import java.util.zip.GZIPOutputStream;import java.util.zip.ZipEntry;import java.util.zip.ZipOutputStream;@Override public void downloadAllQr(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, String data) throws WriterException, IOException { httpServletResponse.setContentType("application/zip"); httpServletResponse.setHeader("Content-disposition", "attachment; filename=" + new String(PoiUtil.getFileName("二维码列表").getBytes(), "ISO-8859-1") + ".zip"); OutputStream outputStream = httpServletResponse.getOutputStream(); ZipOutputStream zipOutputStream = new ZipOutputStream(outputStream); for (DbDO row : dbDOS) { BitMatrix bitMatrix = new MultiFormatWriter().encode(data + row.getId(), BarcodeFormat.QR_CODE, Constant.QR_WIDTH, Constant.QR_HEIGHT); BufferedImage buffImg = MatrixToImageWriter.toBufferedImage(bitMatrix); ZipEntry entry = new ZipEntry(row.getTitle() + "." + GlobalBizImpl.QR_FILE_TYPE); zipOutputStream.putNextEntry(entry); ImageIO.write(buffImg, GlobalBizImpl.QR_FILE_TYPE, zipOutputStream); zipOutputStream.flush(); } zipOutputStream.close(); outputStream.flush(); outputStream.close(); }
阅读全文
0 0
- Java 批量生成二维码图片,并打包成可直接下载的zip包(spring boot)
- Java 生成可直接下载的二维码(spring boot)
- WEB端 生成多张二维码图片并打包成ZIP包供下载
- 不保存批量生成二维码并压缩zip下载
- 批量生成下载二维码图片
- java 批量下载图片,批量打包文件并下载
- java 批量下载图片,批量打包文件并下载
- 批量下载文件,打包成zip压缩包
- 将java项目打包成jar包并生成可独立执行的exe文件
- spring mvc java 把多文件打包成zip,并下载
- spring mvc java 把多文件打包成zip,并下载
- java指定由若干url生成二维码png,然后打包为zip下载
- 【Java生成二维码】java生成和解析二维码,只用一个jar包,QRCODE,可复制粘贴直接用
- Spring Boot教程 - 6. 打包成可部署到外部servlet容器的war包
- 把 spring-boot 项目打包成可运行的 jar 包
- Java批量下载生成zip文件
- java实现文件自动打包成zip并下载…
- java打包文件生成zip压缩包
- oracle11G 开启归档
- http://blog.csdn.net/weixin_37735146/article/details/72774859
- Java Swing 之进度条的使用(简单版)
- mysql5.7官网直译优化和索引--使用生成列的索引
- Android学习笔记之网络编程及Internet应用
- Java 批量生成二维码图片,并打包成可直接下载的zip包(spring boot)
- python环境下的yaml使用
- 如何在WebStorm中调试JavaScript程序
- QT控件大全 二十九 QPlusExtension
- spring页面form标签 报错 Neither BindingResult nor plain target object for bean name "company"
- Java基础之基本语法
- 一起作业学生端用户隐私保护政策
- TensorFlow保存和加载训练模型
- 批处理 for