根據URL生成二維碼返回前端頁面
阿新 • • 發佈:2022-03-01
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.掃碼測試