From 916a21132efd6f935d783b1386dea5b553d2c477 Mon Sep 17 00:00:00 2001 From: zengchenxi Date: Sat, 20 Jan 2024 15:23:03 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E5=8A=9F=E8=83=BD=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E3=80=91=E4=BF=AE=E5=A4=8D=E6=A1=86=E6=9E=B6=E5=90=8C=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=A4=9A=E5=A4=84=E4=BD=BF=E7=94=A8=E5=B0=86=E8=87=B4?= =?UTF-8?q?=E9=94=99=E4=B9=B1=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../framework/common/util/io/FileUtils.java | 19 ++++++++++++++++++- .../infra/service/file/FileServiceImpl.java | 2 +- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/mes-framework/mes-common/src/main/java/com/chanko/yunxi/mes/framework/common/util/io/FileUtils.java b/mes-framework/mes-common/src/main/java/com/chanko/yunxi/mes/framework/common/util/io/FileUtils.java index 9f2929c8..bf6ba391 100644 --- a/mes-framework/mes-common/src/main/java/com/chanko/yunxi/mes/framework/common/util/io/FileUtils.java +++ b/mes-framework/mes-common/src/main/java/com/chanko/yunxi/mes/framework/common/util/io/FileUtils.java @@ -3,6 +3,7 @@ package com.chanko.yunxi.mes.framework.common.util.io; import cn.hutool.core.io.FileTypeUtil; import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.file.FileNameUtil; +import cn.hutool.core.lang.UUID; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.digest.DigestUtil; @@ -64,7 +65,7 @@ public class FileUtils { } /** - * 生成文件路径 + * 生成文件路径(存在问题!慎用!同文件多处使用将致错乱) * * @param content 文件内容 * @param originalName 原始文件名 @@ -81,4 +82,20 @@ public class FileUtils { return sha256Hex + '.' + FileTypeUtil.getType(new ByteArrayInputStream(content)); } + /** + * 生成文件路径 uuid + * + * @param originalName 原始文件名 + * @return path,唯一不可重复 + */ + public static String generatePath(String originalName) { + String uuid = UUID.randomUUID().toString(true); + // 情况一:如果存在 name,则优先使用 name 的后缀 + if (StrUtil.isNotBlank(originalName)) { + String extName = FileNameUtil.extName(originalName); + return StrUtil.isBlank(extName) ? uuid : uuid + "." + extName; + } + return uuid; + } + } diff --git a/mes-module-infra/mes-module-infra-biz/src/main/java/com/chanko/yunxi/mes/module/infra/service/file/FileServiceImpl.java b/mes-module-infra/mes-module-infra-biz/src/main/java/com/chanko/yunxi/mes/module/infra/service/file/FileServiceImpl.java index 8a03667f..5fd3a1cf 100644 --- a/mes-module-infra/mes-module-infra-biz/src/main/java/com/chanko/yunxi/mes/module/infra/service/file/FileServiceImpl.java +++ b/mes-module-infra/mes-module-infra-biz/src/main/java/com/chanko/yunxi/mes/module/infra/service/file/FileServiceImpl.java @@ -42,7 +42,7 @@ public class FileServiceImpl implements FileService { // 计算默认的 path 名 String type = FileTypeUtils.getMineType(content, name); if (StrUtil.isEmpty(path)) { - path = FileUtils.generatePath(content, name); + path = FileUtils.generatePath(name); } // 如果 name 为空,则使用 path 填充 if (StrUtil.isEmpty(name)) {