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)) {