Java 生成可直接下载的二维码(spring boot)
2017-12-08 14:57
337 查看
最近做的一个项目中,需要提供给web端一个接口:downloadQr。用到了Google的Zxing框架。项目使用的是springboot框架。
一、API文档
接口名称:/downloadQr接口描述:生成可直接下载的二维码图片
请求方式:GET
请求参数:String data
响应内容:二维码图片数据流
二、下面直接上代码
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("downloadQr") public void downloadQr(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, String data) throws IOException, WriterException { globalBiz.downloadQr(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 downloadQr(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, String data) throws WriterException, IOException;
biz层 实现
import com.google.common.collect.Lists; 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.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.OutputStream; 其中关键常量: CharsetConstant.UTF_8 = "UTF_8"; Constant.QR_WIDTH = 300; QR_FILE_TYPE = "png"; @Override public void downloadQr(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, String data) throws WriterException, IOException { String dataHandle = new String(data.getBytes(CharsetConstant.UTF_8), CharsetConstant.UTF_8); BitMatrix bitMatrix = new MultiFormatWriter().encode(dataHandle, BarcodeFormat.QR_CODE, Constant.QR_WIDTH, Constant.QR_HEIGHT); httpServletResponse.reset();//清空输出流 OutputStream os = httpServletResponse.getOutputStream();//取得输出流 MatrixToImageWriter.writeToStream(bitMatrix, QR_FILE_TYPE, os);//写入文件刷新 os.flush(); os.close();//关闭输出流 }
相关文章推荐
- Java 批量生成二维码图片,并打包成可直接下载的zip包(spring boot)
- java 生成二维码并直接在web输出
- java zxing生成二维码的jar包下载制作
- java二维码生成 使用SSM框架 搭建属于自己的APP二维码合成、解析、下载
- 【Java生成二维码】java生成和解析二维码,只用一个jar包,QRCODE,可复制粘贴直接用
- 在java中生成二维码,并直接输出到jsp页面
- 在java中生成二维码,并直接输出到jsp页面
- 【JAVA-OSS】如何在spring-boot项目中使用oss上传下载文件
- Java spring中实现自动生成Excel文件并可下载
- Java通用的Excel文件生成工具类,支持生成文件和浏览器直接下载
- Java后台直接生成二维码介绍
- 在java中生成二维码,并直接输出到jsp页面
- 使用Swagger生成JAVA Mock Server(Springboot)代码
- 在java中生成二维码,并直接输出到jsp页面
- 在java中生成二维码,并直接输出到jsp页面
- 用java生成二维码,直接可用
- 基于spring-boot的文件上传和下载(包括图片的压缩)--第一篇(Java代码)
- java 二维码生成与解析代码实现,程序源码下载可用
- Java生成直接页面输出二维码,但不保存二维码图片
- java 利用 poi 生成 Excel文件与spring使用文件流形式下载文件