From e6b68bff8c96c794a7614b6321dd332833557c19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BC=82=E6=B3=8A?= <1913856125@qq.com> Date: Sat, 17 Jan 2026 20:37:03 +0800 Subject: [PATCH] =?UTF-8?q?app=E6=96=B0=E5=A2=9E=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=89=8D=E7=AB=AF=E4=BC=A0=E5=85=A5=E8=B7=AF=E5=BE=84=E8=8E=B7?= =?UTF-8?q?=E5=8F=96base64?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/controller/ImageController.java | 66 +++++++++++++++++++ .../module/app/controller/OrcController.java | 1 + 2 files changed, 67 insertions(+) create mode 100644 zhyc-module/src/main/java/com/zhyc/module/app/controller/ImageController.java diff --git a/zhyc-module/src/main/java/com/zhyc/module/app/controller/ImageController.java b/zhyc-module/src/main/java/com/zhyc/module/app/controller/ImageController.java new file mode 100644 index 0000000..dcb273f --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/app/controller/ImageController.java @@ -0,0 +1,66 @@ +package com.zhyc.module.app.controller; + +import com.zhyc.common.config.RuoYiConfig; +import com.zhyc.common.core.domain.AjaxResult; +import com.zhyc.module.app.util.OcrRecognizeUtil; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +//图片返回base64 +@RestController +@RequestMapping("/app/image") +public class ImageController { + +@PostMapping +public AjaxResult getImageBase64(String path) { + // 添加空值检查 + if (path == null || path.trim().isEmpty()) { + return AjaxResult.error("路径不能为空"); + } + path = path.replace("/profile", ""); + + try { + // 构建完整的文件路径 + String fullPath = RuoYiConfig.getProfile() + path; + + // 读取文件并转换为字节数组 + byte[] fileBytes = java.nio.file.Files.readAllBytes(java.nio.file.Paths.get(fullPath)); + + // 将字节数组转换为base64字符串 + String base64String = java.util.Base64.getEncoder().encodeToString(fileBytes); + + // 获取文件扩展名以确定MIME类型 + String mimeType = getMimeType(path); + + // 返回base64数据,格式为 data:image/xxx;base64,xxxxx + String result = "data:" + mimeType + ";base64," + base64String; + + return AjaxResult.success(result); + } catch (Exception e) { + return AjaxResult.error("读取图片失败: " + e.getMessage()); + } +} + +/** + * 根据文件扩展名获取MIME类型 + */ +private String getMimeType(String fileName) { + String extension = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase(); + switch (extension) { + case "jpg": + case "jpeg": + return "image/jpeg"; + case "png": + return "image/png"; + case "gif": + return "image/gif"; + case "bmp": + return "image/bmp"; + default: + return "image/jpeg"; // 默认返回jpeg类型 + } +} + +} + diff --git a/zhyc-module/src/main/java/com/zhyc/module/app/controller/OrcController.java b/zhyc-module/src/main/java/com/zhyc/module/app/controller/OrcController.java index 48d277f..101e15f 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/app/controller/OrcController.java +++ b/zhyc-module/src/main/java/com/zhyc/module/app/controller/OrcController.java @@ -8,6 +8,7 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +//文字识别 @RestController @RequestMapping("/ocr") public class OrcController {