最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

hutool工具类生成二维码案例

IT圈 admin 2浏览 0评论

hutool工具类生成二维码案例

hutool工具类生成二维码案例

一、环境:

添加hutool工具类依赖,hutool生成二维码是利用Google的zixing,而且不是强依赖,所以还需引入zxing依赖

<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.3.4</version>
</dependency><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.3.3</version>
</dependency>

二、生成二维码

1.生成二维码,写入response流中返回前端

后台代码:

	/*** 获取二维码* yuanzidu* @return*/@GetMapping("/getQRCode")@ResponseBodypublic void getQRCode(HttpServletResponse response) throws IOException {String qrCodeUrl = "需要生成的内容";try {QrConfig qrConfig = new QrConfig(300, 300);QrCodeUtil.generate(qrCodeUrl, qrConfig, "png", response.getOutputStream());log.info("生成二维码成功!");} catch (QrCodeException | IOException e) {log.error("发生错误! {}!", e.getMessage());}}

前端接收:

<!-- 可用img标签进行接收 -->
<img th:src="xxxurl地址/getQRCode">
2.生成多个二维码并打包成zip下载

后台代码:

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.util.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;/*** 打包成.zip选中的二维码* yuanzidu*/@GetMapping("/getAllQRCode")@ResponseBodypublic void getAllQRCode(HttpServletResponse response) throws IOException {Assert.hasLength(id, "主键不能为空.");//设置响应参数response.setContentType("application/zip");response.setHeader("Content-disposition","attachment; filename=" + new String((StringUtils.replace("二维码列表_" + DateUtil.now(), " ", "_")).getBytes(),"ISO-8859-1") + ".zip");//zip流OutputStream outputStream = response.getOutputStream();ZipOutputStream zipOutputStream = new ZipOutputStream(outputStream);//根据id生成二维码List<String> idList = new ArrayList<>();idList.add("1");idList.add("2");idList.add("3");idList.add("4");//生成二维码并压缩进zipfor (String id : idList) {String fileName ="二维码_"+id;ZipEntry entry = new ZipEntry(fileName + "." + "PNG");zipOutputStream.putNextEntry(entry);QrCodeUtil.generate(id, 300, 300, ImgUtil.IMAGE_TYPE_PNG, zipOutputStream);zipOutputStream.flush();}zipOutputStream.close();outputStream.flush();outputStream.close();}

前端代码:

<script>
function downloadFile(){window.location.href = "url地址/getAllQRCode";
}
</script>

hutool工具类生成二维码案例

hutool工具类生成二维码案例

一、环境:

添加hutool工具类依赖,hutool生成二维码是利用Google的zixing,而且不是强依赖,所以还需引入zxing依赖

<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.3.4</version>
</dependency><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.3.3</version>
</dependency>

二、生成二维码

1.生成二维码,写入response流中返回前端

后台代码:

	/*** 获取二维码* yuanzidu* @return*/@GetMapping("/getQRCode")@ResponseBodypublic void getQRCode(HttpServletResponse response) throws IOException {String qrCodeUrl = "需要生成的内容";try {QrConfig qrConfig = new QrConfig(300, 300);QrCodeUtil.generate(qrCodeUrl, qrConfig, "png", response.getOutputStream());log.info("生成二维码成功!");} catch (QrCodeException | IOException e) {log.error("发生错误! {}!", e.getMessage());}}

前端接收:

<!-- 可用img标签进行接收 -->
<img th:src="xxxurl地址/getQRCode">
2.生成多个二维码并打包成zip下载

后台代码:

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.util.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;/*** 打包成.zip选中的二维码* yuanzidu*/@GetMapping("/getAllQRCode")@ResponseBodypublic void getAllQRCode(HttpServletResponse response) throws IOException {Assert.hasLength(id, "主键不能为空.");//设置响应参数response.setContentType("application/zip");response.setHeader("Content-disposition","attachment; filename=" + new String((StringUtils.replace("二维码列表_" + DateUtil.now(), " ", "_")).getBytes(),"ISO-8859-1") + ".zip");//zip流OutputStream outputStream = response.getOutputStream();ZipOutputStream zipOutputStream = new ZipOutputStream(outputStream);//根据id生成二维码List<String> idList = new ArrayList<>();idList.add("1");idList.add("2");idList.add("3");idList.add("4");//生成二维码并压缩进zipfor (String id : idList) {String fileName ="二维码_"+id;ZipEntry entry = new ZipEntry(fileName + "." + "PNG");zipOutputStream.putNextEntry(entry);QrCodeUtil.generate(id, 300, 300, ImgUtil.IMAGE_TYPE_PNG, zipOutputStream);zipOutputStream.flush();}zipOutputStream.close();outputStream.flush();outputStream.close();}

前端代码:

<script>
function downloadFile(){window.location.href = "url地址/getAllQRCode";
}
</script>

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论