From 492896278eba89c0c21e673c145811da25c3c438 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E6=9C=9D=E9=A3=9E?= Date: Mon, 22 Jan 2024 15:10:13 +0800 Subject: [PATCH] =?UTF-8?q?feat(req-2080):=E4=BB=A3=E7=A0=81=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/axzo/oss/service/impl/FileServiceImpl.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/oss-service/src/main/java/cn/axzo/oss/service/impl/FileServiceImpl.java b/oss-service/src/main/java/cn/axzo/oss/service/impl/FileServiceImpl.java index 60ece14..fe1902a 100644 --- a/oss-service/src/main/java/cn/axzo/oss/service/impl/FileServiceImpl.java +++ b/oss-service/src/main/java/cn/axzo/oss/service/impl/FileServiceImpl.java @@ -644,17 +644,25 @@ public class FileServiceImpl implements FileService { input = file.getInputStream(); // 指定目标文件路径及文件名 String fileName = file.getOriginalFilename(); + + // 生成临时文件名称,防止中文文件名乱码导致删除失败 assert fileName != null; String tempFileName = Utility.getUUID() + fileName.substring(fileName.lastIndexOf(".")); + + // 获取操作系统名称,不同操作系统中文件路径有区别 String osName = System.getProperty("os.name"); String rootDir; + // linux操作系统 if (Objects.nonNull(osName) && osName.toLowerCase().startsWith("linux")) { rootDir = "/mnt/temp/obs"; } else { + // 其它操作系统 ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader(); String classPath = Objects.requireNonNull(contextClassLoader.getResource("")).getPath(); rootDir = classPath.substring(0, classPath.indexOf("/target/classes/")); } + + // 拼接文件路径 String filePath = rootDir + SEPARATOR + "temp_directory"; String absolutePath = filePath + SEPARATOR + tempFileName; @@ -670,10 +678,6 @@ public class FileServiceImpl implements FileService { absolutePath = rootDir + SEPARATOR + tempFileName; } } - if (!tempDirectory.exists()) { - // 兜底 - absolutePath = rootDir + SEPARATOR + tempFileName; - } log.info("临时文件绝对路径:{}", absolutePath); // 创建输出流并写入数据