java 生成二维码并以流形式输出显示到页面上
时间:2018-11-13
本文章向大家介绍java后台生成并下载二维码(以二进制流的形式输出,需要的朋友可以参考一下
前提业务要求:前台页面展示数据,有下载按钮,点击下载,下载对应数据的二维码。
首先,在pom.xml文件中添加依赖
<dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.3.3</version> <scope>compile</scope> </dependency> <dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.3.3</version> <scope>compile</scope> </dependency>
其次,Controller的写法(生成二维码并以流的形式输出到浏览器)
@RequestMapping("/test") public void dowanload(HttpServletRequest request,HttpServletResponse response) throws Exception { //二维码中包含的信息 String content = "姓名:十二余\n博客:https://www.cnblogs.com/jing5464"; Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>(); // 指定编码格式 hints.put(EncodeHintType.CHARACTER_SET, "UTF-8"); // 指定纠错级别(L--7%,M--15%,Q--25%,H--30%) hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H); // 编码内容,编码类型(这里指定为二维码),生成图片宽度,生成图片高度,设置参数 BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, 200, 200, hints); //设置请求头 response.setHeader("Content-Type","application/octet-stream"); response.setHeader("Content-Disposition", "attachment;filename=" + "十二余的二维码.png"); OutputStream outputStream = response.getOutputStream(); MatrixToImageWriter.writeToStream(bitMatrix, "png", outputStream); outputStream.flush(); outputStream.close(); }
最后,访问地址:http://ip地址+端口号+访问方法路径 如:http://1.0.0.1:9090/test
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- rxjs里debounceTime operators的用法
- rxjs里delay operators的用法
- Android使用FontMetrics对象计算位置坐标
- rxjs里scan和mergeScan operators的用法
- Android自定义控件的步骤
- Android通过Socket与服务器之间进行通信的示例
- SAP Spartacus central configuration - B2cStorefrontModule
- Android自定义控件实现折线图
- 关于Angular Component changeDetection策略设置成OnPush的一个单元测试局限性
- SAP Spartacus CmsService.Components数据结构
- Android同时安装Release和Debug版本的方法
- Django 后台带有字典的列表数据与页面js交互实例
- SAP Spartacus CmsService的CmsActions.LoadCmsComponent
- SAP Spartacus OccEndpointsService单元测试的依赖注入
- Python利用PyPDF2库获取PDF文件总页码实例