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的写法(生成二维码并以流的形式输出到浏览器)

@RestController
@RequestMapping(value = "/web")
public class webTestController {@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);// 二维码名称String fileName = "一叶知秋的二维码.png"String userAgent=request.getHeader("User-Agent");if (userAgent.contains("MSIE") || userAgent.contains("Trident") || userAgent.contains("Edge")) {//IEfileName = java.net.URLEncoder.encode(fileName, "UTF-8");} else {fileName = new String(fileName.getBytes("UTF-8"), "ISO8859-1");// 谷歌/火狐}//设置请求头response.setHeader("Content-Type","application/octet-stream");response.setHeader("Content-Disposition", "attachment;filename=" + fileName );OutputStream outputStream = response.getOutputStream();MatrixToImageWriter.writeToStream(bitMatrix, "png", outputStream);outputStream.flush();outputStream.close();}
访问地址:http://ip地址+端口号+访问方法路径

如:http://192.168.0.1:8080/test

java后台生成并下载二维码相关推荐

  1. Java实现生成和解析二维码

    Java实现生成和解析二维码 文章目录 Java实现生成和解析二维码 一.建立项目 二.创建工具类 三.创建启动类 一.建立项目 首先需要创建一个普通的 Maven 项目,在这里我用的是 google ...

  2. 前端生成、下载二维码

    前台生成.下载二维码 点击查看按钮,弹出二维码弹框 查看按钮 <el-button type="text" @click="useqrcode(scope.row) ...

  3. QRCode 生成和下载二维码

    使用注意事项: 1.url必须带通信协议 2.生成二维码前必须先清空二维码,不然会重复生成二维码(文章最后) 1.引入插件QRCode QRCode.js 是一个用于生成二维码的 JavaScript ...

  4. Vue3项目生成并下载二维码,关于vue-qr.vue与qrcode.vue插件之间的区别

    1.vue-qr.vue与qrcode.vue大致区别 vue-qr.vue:体积较大,大概4M左右,可以给二维码添加中心logo,生成二维码为img标签,可下载 qrcode.vue:体积较小,不能 ...

  5. Java以IO流和文件流,生成、下载二维码

    场景 在系统中生成一个二维码,用户保存下来并分享出去,其他人扫描之后跳到我们的一个活动详情页,查看此活动的内容. 从以上的需求中,可以提炼出以下几点: 当用户点击生成二维码的时候,我们要拿到用户生成的 ...

  6. 只需3个步骤,轻松解决程序员在Java中生成、扫描二维码难题

    条形码包含有关产品或公司的信息,以机器可读的形式直观地表示.条码广泛用于跟踪货物和库存管理.我们可以在 WPF 应用程序中轻松生成各种类型的条码.二维码广泛用于分享重要信息.对于不同的要求,您可能希望 ...

  7. vue:实现前端生成并下载二维码(使用qrcodejs2插件)

    需求 点击按钮下载二维码,并命名为"奶绿走糖-二维码". HTML <button @click="getPersonCode()">下载二维码&l ...

  8. vue引用qrcodejs2生成、下载二维码、复制到剪贴板

    使用的vue2.x版本,UI框架为ant design vue 1.X版本 1.场景:页面需要展示二维码并且需要下载二维码的功能 效果图: 引用插件: yarn add qrcodejs2@0.0.2 ...

  9. java后台获取微信分享二维码 并返回给前端

    最近公司业务需求 微信小程序需要分享 从后台请求生成二维码图片 并显示 给大家分享一下 经验 第一步 :获得 微信token(这个token两个小时会过期 所以需要token生成相对应的二维码) St ...

最新文章

  1. python argv 详解_Python3 sys.argv[ ]用法详解
  2. 百度CTO王海峰:百度Paddle已支持超过70个主流的模型
  3. 成为Web开发大师你必须知道的7件事情
  4. question: student_link
  5. 计算机视觉算法工程师 笔试,深度学习算法工程师笔试题目
  6. 机器学习中数据集的拆分
  7. Spring应用程序与JNDI连接池的集成测试
  8. 异常来自 hresult:0x800a03ec_肺癌早期不是悄无声息,一旦出现这3个“异常”,十有八九是肺癌...
  9. from表单iframe原网页嵌入
  10. 机动车c1科三考试语言灯光,c1科目三灯光模拟考试
  11. 在AWS RDS SQL Server中恢复数据
  12. javascript笔记——js面试问题
  13. echarts饼图显示百分比
  14. 经验分享:如何免费合并两个pdf文件
  15. 使用 dva 如何配置异步加载路由组件
  16. 第二次作业-语言和文法
  17. Windows Subsystem for Android (WSA) 下载:在 Windows 11 上运行 Android 应用
  18. Proteus+VSPD实现仿真stm32虚拟串口
  19. Python数据可视化——图型参数介绍
  20. python词云分析--媒体近期的讨论热点

热门文章

  1. 剑指Offer66题之每日6题 - 最后一天
  2. Spring Boot配置加载顺序
  3. ArcSDE和Oracle分离安装(生产实践)
  4. 无人机远距离WiFi自组网传输,cv5200无线通信模组,智能无线通讯方案
  5. 从Trenches首次发布集成测试
  6. 什么是植物神经紊乱 要如何对待
  7. 一次购买新电脑并加装内存(32G)的分享
  8. 视频码控:CBR、VBR和ABR
  9. 超级眼电脑监控软件轻松管理企业运营提高工作效率
  10. linux基本命令及文件管理