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