java后台生成并下载二维码(以二进制流的形式输出)
程序员文章站
2022-10-23 08:14:21
前提业务要求:前台页面展示数据,有下载按钮,点击下载,下载对应数据的二维码。 首先,在pom.xml文件中添加依赖 ......
前提业务要求:前台页面展示数据,有下载按钮,点击下载,下载对应数据的二维码。
首先,在pom.xml文件中添加依赖
<dependency> <groupid>com.google.zxing</groupid> <artifactid>core</artifactid> <version>3.3.3</version> <scope>compile</scope> </dependency> <dependency> <groupid>com.google.zxing</groupid> <artifactid>javase</artifactid> <version>3.3.3</version> <scope>compile</scope> </dependency>
其次,controller的写法(生成二维码并以流的形式输出到浏览器)
@requestmapping("/test") public void dowanload(httpservletrequest request,httpservletresponse response) throws exception { //二维码中包含的信息 string content = "姓名:十二余\n博客:https://www.cnblogs.com/jing5464"; 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=" + "十二余的二维码.png"); outputstream outputstream = response.getoutputstream(); matrixtoimagewriter.writetostream(bitmatrix, "png", outputstream); outputstream.flush(); outputstream.close(); }
最后,访问地址:http://ip地址+端口号+访问方法路径
如:http://1.0.0.1:9090/test
下一篇: 逗B春节过的都和别人不一样