• 根据URL生成二维码返回前端页面


    1.添加maven依赖

            <dependency>
                <groupId>com.google.zxing</groupId>
                <artifactId>javase</artifactId>
                <version>3.3.3</version>
            </dependency>

    2.写个controller请求

    package com.fansir.controller;
    
    import com.google.zxing.BarcodeFormat;
    import com.google.zxing.EncodeHintType;
    import com.google.zxing.MultiFormatWriter;
    import com.google.zxing.client.j2se.MatrixToImageWriter;
    import com.google.zxing.common.BitMatrix;
    import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
    import org.springframework.web.bind.annotation.*;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.OutputStream;
    import java.util.HashMap;
    import java.util.Map;
    
    /**
     * @author fasnir
     * @date 2022/3/1 16:46
     */
    @RestController
    public class UserController {
    
        @RequestMapping(value="/getQRCode")
        public void dowanload(HttpServletRequest request, HttpServletResponse response) throws Exception {
            //二维码中包含的信息
            String content = "http://www.baidu.com";
            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=" + "code.png");
            OutputStream outputStream = response.getOutputStream();
            MatrixToImageWriter.writeToStream(bitMatrix, "png", outputStream);
            outputStream.flush();
            outputStream.close();
        }
    }
    response.setHeader("Content-Type","application/octet-stream"); 加上这样代码浏览器会直接下载二维码图片,注释起来就是直接显示在页面上。

    3.请求测试

     

     4.扫码测试

  • 相关阅读:
    数据分析 第五篇:离群点检测
    linux lsof命令详解
    ES基本查询语句教程
    Swagger详解(SpringBoot+Swagger集成)
    Elasticsearch5.0 安装问题集锦
    kafka auto.offset.reset latest earliest 详解
    干货 | Elasticsearch多表关联设计指南
    kafka auto.offset.reset latest earliest 详解
    linux sed命令
    Idea中如何使用debug操作
  • 原文地址:https://www.cnblogs.com/fansirHome/p/15951236.html
Copyright © 2020-2023  润新知