1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > hutool工具类生成二维码案例

hutool工具类生成二维码案例

时间:2021-06-03 00:50:21

相关推荐

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>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。