From 8d19fa0775f455ddabc54e4d128308013f9a6bb8 Mon Sep 17 00:00:00 2001 From: zhibing.pu <393733352@qq.com> Date: 星期一, 26 八月 2024 17:57:12 +0800 Subject: [PATCH] 完善二维码下载功能 --- ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java | 16 +++++++++++----- 1 files changed, 11 insertions(+), 5 deletions(-) diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java index cc6f241..457c752 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java @@ -1,6 +1,7 @@ package com.ruoyi.chargingPile.controller; +import cn.hutool.core.img.ImgUtil; import cn.hutool.core.io.FileUtil; import com.ruoyi.chargingPile.api.dto.TChargingGunDTO; import com.ruoyi.chargingPile.api.model.TChargingGun; @@ -23,8 +24,12 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; +import java.awt.image.BufferedImage; +import java.io.BufferedReader; import java.io.FileInputStream; +import java.io.FileReader; import java.io.PrintWriter; import java.net.URLEncoder; import java.util.Arrays; @@ -132,17 +137,18 @@ public void downloadQRCode(@PathVariable Integer id, HttpServletResponse response){ try { TChargingGun chargingGun = chargingGunService.getById(id); - response.setContentType("image/jpeg"); - response.setHeader("Content-Disposition","attachment; filename=" + URLEncoder.encode(chargingGun.getName(), "UTF-8") + ".jpeg"); + String fileName = URLEncoder.encode(chargingGun.getCode(), "UTF-8") + ".jpg"; + response.setContentType("application/force-download"); + response.addHeader("Content-Disposition", "attachment;fileName=" + fileName); String url = "https://www.baidu.com?id=" + id; - String filePath = ""; + String filePath = "D://" + fileName; QRCodeUtils.encode(url, filePath); FileInputStream inputStream = new FileInputStream(filePath); - PrintWriter out = response.getWriter(); + ServletOutputStream out = response.getOutputStream(); int len = 0; byte[] buf = new byte[1024]; while ((len = inputStream.read(buf, 0, 1024)) != -1) { - out.println(buf); + out.write(buf); } out.flush(); out.close(); -- Gitblit v1.7.1