本文主要是介绍Java 批量生成二维码图片,并在页面打包成可直接下载的zip包,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、描述
前言:在页面点击按钮通过后端生成二维码并下载到本地。(并且可以批量下载)
请求方式:GET
请求参数:String ids
响应内容:zip文件流
二、代码实现
1.引入包:
<!-- 二维码相关依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.3.3</version></dependency><!-- 二维码相关依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>javase</artifactId><version>3.3.3</version></dependency>
2.Controller控制层
/*** 二维码生成并下载* @param request* @param response* @param ids* @throws Exception*/@GetMapping(value = "/qrcode")public void qrcode(HttpServletRequest request, HttpServletResponse response,String ids) throws Exception {liuyiScenesInfoService.downloadAllQr(request, response,ids);}
3.Serivce层
//二维码生成
void downloadAllQr(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse,String ids) throws WriterException, IOException;
4.ServiceImpl层
@Overridepublic void downloadAllQr(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse,String ids)throws WriterException, IOException {httpServletResponse.setContentType("application/zip");String fileName = "奇境留亿场景二维码.zip";String encodedFileName = new String(fileName.getBytes("UTF-8"), "ISO8859-1");httpServletResponse.setHeader("Content-disposition", "attachment; filename="+encodedFileName);OutputStream outputStream = httpServletResponse.getOutputStream();ZipOutputStream zipOutputStream = new ZipOutputStream(outputStream);List<LiuyiScenesInfo> scenesInfoList = liuyiScenesInfoMapper.selectBatchIds(Arrays.asList(ids.split(",")));for (LiuyiScenesInfo liuyiScenesInfo : scenesInfoList) {//扫码后的地址BitMatrix bitMatrix = new MultiFormatWriter().encode("http://www.baidu.com", BarcodeFormat.QR_CODE, 300, 300);BufferedImage buffImg = MatrixToImageWriter.toBufferedImage(bitMatrix);//二维码图片名称ZipEntry entry = new ZipEntry(liuyiScenesInfo.getSampleText()+".png");zipOutputStream.putNextEntry(entry);//图片格式ImageIO.write(buffImg, "png", zipOutputStream);zipOutputStream.flush();}zipOutputStream.close();outputStream.flush();outputStream.close();}
三、效果
解压出来
参考文章:Java 批量生成二维码图片,并打包成可直接下载的zip包(spring boot)_IT技术分享网
这篇关于Java 批量生成二维码图片,并在页面打包成可直接下载的zip包的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!