请问怎样使用jfinal生成二维码?

请问怎样使用jfinal生成二维码?有文档吗?


评论区

JFinal

2018-07-06 21:20

renderQrCode(...) 即可,根本不需要文档,一行代码的事

蓝胖纸

2019-03-18 16:14

@JFinal 如果要将生成的二维码保存到本地要怎么做

JFinal

2019-03-18 16:19

@蓝胖纸 copy 出 jfinal 内的 QrCodeRender.java 源码,将其中的输出 OutputStream 定位到 FileOutputStream 即可

蓝胖纸

2019-03-18 17:03

@JFinal 可以了 感谢波总

JFinal

2019-03-18 17:08

@蓝胖纸 挺会学以致用,赞

hotsmile

2019-03-18 17:57

@JFinal 波总,最近在忙啥,年前说在憋大招?

哎哎

2020-06-28 15:01

@JFinal 请问怎么将 OutputStream 定位到 FileOutputStream

哎哎

2020-06-28 15:03

@JFinal QRCodeWriter writer = new QRCodeWriter();
BitMatrix bitMatrix = writer.encode(this.content, BarcodeFormat.QR_CODE, this.width, this.height, hints);
MatrixToImageWriter.writeToStream(bitMatrix, "png", this.response.getOutputStream());
FileOutputStream fos = new FileOutputStream("D:/download/444.png");
fos.write();
fos.close();
怎么把OutputStream 定位到 FileOutputStream

JFinal

2020-06-28 15:07

@哎哎
try (FileOutputStream fos = new FileOutputStream("D:/download/444.png")) {
MatrixToImageWriter.writeToStream(bitMatrix, "png", fos);
}

哎哎

2020-06-28 15:10

@JFinal 太感谢了!!!!!!!!! 谢谢波总

哎哎

2020-06-28 15:48

@JFinal 请问下有没有办法直接让用户下载这个二维码啊。就是用renderFile

哎哎

2020-06-28 16:06

@JFinal 解决了,我把QrCodeRender的render方法直接拷贝了出来,在controller里面进行保存,保存后然后在根据renderFile进行下载

JFinal

2020-06-28 17:24

@哎哎 绕远了,不需要保存文件再下载,而是:
1:做一个 public class MyQrRender extends QrCodeRender

2:覆盖其中的 render 方法,添加下面的 header 信息
response.setHeader("Content-disposition", "attachment; qr_file.png");
// response.setContentType("application/octet-stream");
response.setContentType("image/png");

3:向 response.getOutputStream() 中直接输出数据
MatrixToImageWriter.writeToStream(bitMatrix, "png", response.getOutputStream());