From 91791451cfad4f6acb7b4a0adbbd1f2a65e9b6af Mon Sep 17 00:00:00 2001 From: chenchuchuan <13554600537@163.com> Date: Fri, 30 Oct 2026 18:26:03 +0800 Subject: [PATCH] =?UTF-8?q?refactor(upload):=20=E7=BB=9F=E4=B8=80=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=AD=98=E5=82=A8=E5=91=BD=E5=90=8D=E7=AD=96=E7=95=A5?= =?UTF-8?q?=E4=B8=BA=20{uuid}.{=E5=90=8E=E7=BC=80}?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 存储文件名由 {uuid}.{原始文件名} 改为 {uuid}.{扩展名},避免同名文件互相覆盖 - 新增 fileRealName 字段保存原始文件名,filename 字段统一存储实际存储名 - 移除 LocalUpDownloader 中二次添加 uuid 前缀的逻辑,避免产生 uuid@uuid.后缀 格式 - 清理未使用的 MyCommonUtil 导入,将通配符导入替换为具体类导入 --- .../main/java/apelet/common/core/upload/BaseUpDownloader.java | 11 ++++++++--- .../java/apelet/common/core/upload/LocalUpDownloader.java | 11 ++++++----- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/common/common-core/src/main/java/apelet/common/core/upload/BaseUpDownloader.java b/common/common-core/src/main/java/apelet/common/core/upload/BaseUpDownloader.java index d0c768c..17b86e2 100644 --- a/common/common-core/src/main/java/apelet/common/core/upload/BaseUpDownloader.java +++ b/common/common-core/src/main/java/apelet/common/core/upload/BaseUpDownloader.java @@ -80,11 +80,16 @@ public abstract class BaseUpDownloader { } else { downloadUri = serviceContextPath + uri + "/download"; } + // 存储名统一为 {uuid}.{后缀},各存储实现直接使用,避免同名文件互相覆盖。 + String extension = FilenameUtils.getExtension(originalFilename); StringBuilder filenameBuilder = new StringBuilder(64); - filenameBuilder.append(MyCommonUtil.generateUuid()) - .append(".").append(originalFilename); + filenameBuilder.append(MyCommonUtil.generateUuid()); + if (StringUtils.isNotBlank(extension)) { + filenameBuilder.append(".").append(extension); + } responseInfo.setDownloadUri(downloadUri); - responseInfo.setFilename(originalFilename); + responseInfo.setFileRealName(originalFilename); + responseInfo.setFilename(filenameBuilder.toString()); } /** diff --git a/common/common-core/src/main/java/apelet/common/core/upload/LocalUpDownloader.java b/common/common-core/src/main/java/apelet/common/core/upload/LocalUpDownloader.java index 5dccc6f..e4660f7 100644 --- a/common/common-core/src/main/java/apelet/common/core/upload/LocalUpDownloader.java +++ b/common/common-core/src/main/java/apelet/common/core/upload/LocalUpDownloader.java @@ -2,7 +2,6 @@ package apelet.common.core.upload; import apelet.common.core.constant.ErrorCodeEnum; import apelet.common.core.exception.MyRuntimeException; -import apelet.common.core.util.MyCommonUtil; import cn.hutool.core.util.BooleanUtil; import com.alibaba.fastjson.JSON; import lombok.extern.slf4j.Slf4j; @@ -15,7 +14,10 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.PostConstruct; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; -import java.io.*; +import java.io.BufferedInputStream; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; import java.net.URLEncoder; import java.nio.file.Files; import java.nio.file.Path; @@ -121,9 +123,8 @@ public class LocalUpDownloader extends BaseUpDownloader { try { byte[] bytes = uploadFile.getBytes(); StringBuilder sb = new StringBuilder(256); - String s = MyCommonUtil.generateUuid() + "@" + responseInfo.getFilename(); - responseInfo.setFileRealName(responseInfo.getFilename()); - responseInfo.setFilename(s); + // fillUploadResponseInfo 已生成 {uuid}.{后缀},此处直接使用,不再二次加前缀(否则会出现 uuid@uuid.后缀)。 + String s = responseInfo.getFilename(); sb.append(uploadPath).append("/").append(s); Path path = Paths.get(sb.toString());