SpringBoot生成二维码 扫描并可下载文件
生成二维码 扫描并可下载文件
- pom.xml 依赖
- application.yaml
- Controller
- ImageBuilderUtils 工具类
适当根据自己的业务需求变通,然后就能轻松使用了,不用再浪费大量时间去写二维码生成
pom.xml 依赖
<!--二维码生成--><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.3.0</version></dependency><dependency><groupId>com.google.zxing</groupId><artifactId>javase</artifactId><version>3.3.0</version></dependency>
application.yaml
使用了若依 profile 文件路径映射 不是若依的,记得修改映射方式
Controller
/*** 生成二维码* */@ApiOperation(value = "生成二维码", notes = "")@PostMapping(value = "/qrCode")public AjaxResult qrCode(){try {//若依系统封装的Config 不是若依使用 getProfile() + "/upload"String filePath = RuoYiConfig.getUploadPath();//查询数据库获取最新的apk的信息 根据自己需要调用数据里的数据SysAppVersions newVersion = iSysAppVersionsService.getNewVersionId();if (newVersion.getId()==null)throw new CustomException("没有apk!");//设置二维码图片名称,如果没有DateTool工具类也可以直接使用时间戳 System.currentTimeMillis()String imgName = String.valueOf(newVersion.getId() + DateTool.currentTimestamp());//设置二维码存储路径String path = filePath + "/QRCode/" + imgName + ".png";//本地测试IP+APK存储路径String filename = "http://192.168.10.11:8086"+newVersion.getVersionsSite();//真实使用IP
// String filename = "https://***"+newVersion.getVersionsSite();//保存二维码地址 profile若依系统映射文件路径方式 newVersion.setVersionsQrcode("/profile/upload/QRCode/" + imgName + ".png");//将生成的二维码地址存入数据库 根据自己需求判断是否需要存储地址 //iSysAppVersionsService.updateVersionsQRcodeById(newVersion.getId(),newVersion.getVersionsQrcode());img(filename, path);return AjaxResult.success("生成二维码成功!");}catch (Exception e){return AjaxResult.error(e.getMessage());}}private void img(String filename, String path) {try {//创建文件夹 如果没有工具类,则使用 //File file = new File(path);//if (!file.exists()) {// file.mkdirs();//}FileUploadUtils.addFolder(path);//生成二维码ImageBuilderUtils.generateQRCodeImage(filename, path);} catch (WriterException e) {throw new CustomException("WriterException 生成二维码失败,请稍后再试!");} catch (IOException e) {throw new CustomException("IOException 生成二维码失败,请稍后再试!");}}
ImageBuilderUtils 工具类
package com.ruoyi.project.tool.common;import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Path;
import java.util.Hashtable;public class ImageBuilderUtils {/*** 生成二维码* @param filePath* @throws WriterException* @throws IOException*/public static void generateQRCodeImage(String id, String filePath) throws WriterException, IOException {Hashtable hints = new Hashtable();hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);hints.put(EncodeHintType.CHARACTER_SET, "utf-8");hints.put(EncodeHintType.MARGIN, 1);QRCodeWriter qrCodeWriter = new QRCodeWriter();BitMatrix bitMatrix = qrCodeWriter.encode(id.toString(), BarcodeFormat.QR_CODE, 350, 350,hints);Path path = FileSystems.getDefault().getPath(filePath);MatrixToImageWriter.writeToPath(bitMatrix, "PNG", path);}}
SpringBoot生成二维码 扫描并可下载文件相关推荐
- springboot 生成二维码
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.导入依赖 二.编写配置文件 三.编写代码实现 1 controller层编写 2 Constant编写 3 映射规 ...
- java生成二维码扫描跳转到指定的路径URL
java生成二维码扫描跳转到指定的路径URL 导入依赖 <dependency><groupId>com.google.zxing</groupId><art ...
- java 系统生成二维码实现扫码登录 springboot 生成二维码
文章目录 前言 一.生成二维码 二.业务流程和代码逻辑梳理 总结 前言 使用框架 springboot 自己系统生成二维码,到前端网站,以及APP扫码登录流程,业务流程讲解梳理.也为自己做记录. ...
- iOS-长按识别二维码/生成二维码/扫描二维码
参考:http://www.jianshu.com/p/997cec333822 参考:https://github.com/nglszs/BCQRcode 方式一:长按识别二维码 #import & ...
- app生成二维码,扫描二维码
一.扫描二维码 1.依赖: 1.1.添加到你的 Project Build.gradle:allprojects {repositories {...maven { url 'https://jitp ...
- 通过AppStore上的app生成二维码扫描下载
1.通过苹果手机上的AppStore搜索已经上架的app,点击app可以在右上角看到一个分享转发似的按钮,点击按钮可以看到拷贝链接,通过这可以得到你app再AppStore上的下载链接,然后百度二维码 ...
- java springboot生成二维码图片
java生成二维码图片 Maven依赖 <!--生成二维码--> <dependency><groupId>com.google.zxing</groupId ...
- 怎么让拍摄的视频生成二维码,扫描后即可观看?
二维码相信大家都非常熟悉了,随着智能手机的普及,二维码可以说遍布生活的方方面面,这个由众多黑格子组成的图案,森罗万象,包括扫码付款,扫码登录,扫码看视频等众多用途. 视频类的二维码更是运用广泛,像公司 ...
- JS生成二维码以及点击下载二维码
JS生成二维码 效果 扫描二维码可访问指定链接或当前网站链接,内容可以自己更改 "复制链接",点击按钮复制当前网站链接 如何获取当前网站链接 源码 textarea{opacity ...
最新文章
- python测试脚本 进制转换_使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)...
- 关于机器学习,你应该至少学习这8个落地案例|干货集锦
- 你了解的继承方式html,法定继承、遗嘱继承、遗赠,这三种房产过户方式你了解多少?...
- vs debug 调试 快捷键
- 常用几个UITableView,UICollectionView UIScrollView关键点
- python中对象的定义_全面了解python中的类,对象,方法,属性
- NXP RT1062 flashloader下载程序到RAM执行
- 窗方法原理之矩形窗及汉明窗
- 【知识兔】Excel多级联动关联下拉菜单的制作,一看就会!
- 山石sg6000e1700配置手册_Hillstone SG-6000安装手册.pdf
- 2023北京邮电大学计算机考研信息汇总
- android qq 退出帐号,大家手机上的QQ平常用完退不退出帐号
- office2016、office365和office其它版本JH
- 计算机图形学c#版pdf,计算机图形学的数学工具与C#实现.pdf
- HTML基础之创建简单表格
- string.Compare用法
- 亲身经历:一次sql缺少where条件的惨案,绩效奖金差点没啦~
- 人工智能数学基础:利用导数判断函数单调性、凹凸性、极值、最值和描绘函数图形
- 报考计算机专业高校专项自荐信,2017年高校专项计划自荐信
- python电子签章_签名python的搜索结果-阿里云开发者社区
热门文章
- Spring AOP 学习总结
- 计算机打字测速,电脑的打字测速软件分享
- 地图上制作线路的动画_使用百度地图API制作线路轨迹播放
- Kotlin: Classifier ‘Demo1‘ does not have a companion object, and thus must be initialized here
- idea查看类层级hierarchy快捷键
- python大数据就业方向_大数据专业未来的就业方向有哪些?[黑马程序员]
- 河北楚纳-防电瓶车进入电梯报警系统
- 微信小程序Java登录流程(ssm实现具体功能和加解密隐私信息问题解决方案)...
- 当极客 (Geek) 遇到呆瓜 (Nerd)
- 洛谷 P4246 [SHOI2008]堵塞的交通 线段树