From c736066f89a9f5a189a03a243ad26cdd1a6d90f2 Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Wed, 24 Sep 2025 14:58:59 +0800
Subject: [PATCH] 文件上传

---
 trading-order-service/src/main/java/com/yami/trading/service/impl/AwsS3OSSFileServiceImpl.java |   59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 59 insertions(+), 0 deletions(-)

diff --git a/trading-order-service/src/main/java/com/yami/trading/service/impl/AwsS3OSSFileServiceImpl.java b/trading-order-service/src/main/java/com/yami/trading/service/impl/AwsS3OSSFileServiceImpl.java
index 7b17759..b0f6a9e 100644
--- a/trading-order-service/src/main/java/com/yami/trading/service/impl/AwsS3OSSFileServiceImpl.java
+++ b/trading-order-service/src/main/java/com/yami/trading/service/impl/AwsS3OSSFileServiceImpl.java
@@ -353,4 +353,63 @@
         String fileType = FilenameUtils.getExtension(fileName);
         return imgTypes.contains(fileType.toLowerCase());
     }
+
+    /**
+     * 上传图标
+     * @param moduleName
+     * @param file
+     * @return
+     */
+    @Override
+    public String uploadIcon(String moduleName, MultipartFile file) {
+        // 兼容c端组件上传原理
+        String originalFilename = file.getOriginalFilename();
+        String fileType = originalFilename != null ? originalFilename : "";
+        if (StrUtil.isEmpty(fileType) || fileType.contains("blob")) {
+            fileType = "blob.png";
+        }
+
+        // 提取文件扩展名
+        String extension = "";
+        int dotIndex = fileType.lastIndexOf('.');
+        if (dotIndex > 0) {
+            extension = fileType.substring(dotIndex);
+        }
+
+        String filename = moduleName + extension;
+        String path = filename; // 直接使用文件名作为路径
+
+        // 确保目标文件夹存在
+        File targetDir = new File(PropertiesUtil.getProperty("loca.images.dir") + "/symbol");
+        if (!targetDir.exists()) {
+            targetDir.mkdirs();
+            // 设置目录权限为755 (rwxr-xr-x)
+            setFilePermissions(targetDir, "755");
+        }
+
+        // 构建本地文件路径
+        File localFile = new File(targetDir, filename);
+
+        // 打印上传路径
+        log.info("LocalFileUploadService uploadFile localFilePath: {}", localFile.getAbsolutePath());
+
+        try {
+            // 将文件保存到本地
+            file.transferTo(localFile);
+
+            // 设置文件权限为644 (rw-r--r--)
+            setFilePermissions(localFile, "644");
+
+            // 如果需要自定义元数据,可以在此处理
+            Map<String, String> metadata = new HashMap<>();
+            metadata.put("x-amz-meta-myVal", "test");
+
+            // 返回文件名
+            return "symbol/" + path;
+
+        } catch (IOException e) {
+            log.error("LocalFileUploadService uploadFile IOException", e.getMessage(), e);
+            throw new YamiShopBindException("文件上传失败");
+        }
+    }
 }

--
Gitblit v1.9.3