From f1c43589d4f8b7af412a4f36f1b6c87602d0a2e4 Mon Sep 17 00:00:00 2001 From: wkc <978997012@qq.com> Date: Thu, 5 Mar 2026 12:01:16 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E4=BF=AE=E6=94=B9uploadFile?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E5=8F=82=E6=95=B0=E7=B1=BB=E5=9E=8B=E4=B8=BA?= =?UTF-8?q?File?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将LsfxAnalysisClient.uploadFile方法参数从MultipartFile改为File - 在LsfxTestController中添加MultipartFile到File的转换逻辑 - 使用临时文件处理转换,并在finally块中自动清理 --- .../ruoyi/lsfx/client/LsfxAnalysisClient.java | 6 ++-- .../lsfx/controller/LsfxTestController.java | 30 +++++++++++++++++-- 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/client/LsfxAnalysisClient.java b/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/client/LsfxAnalysisClient.java index 1eb0381..3630b50 100644 --- a/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/client/LsfxAnalysisClient.java +++ b/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/client/LsfxAnalysisClient.java @@ -15,8 +15,8 @@ import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; -import org.springframework.web.multipart.MultipartFile; +import java.io.File; import java.util.Arrays; import java.util.HashMap; import java.util.Map; @@ -109,8 +109,8 @@ public class LsfxAnalysisClient { /** * 上传文件 */ - public UploadFileResponse uploadFile(Integer groupId, MultipartFile file) { - log.info("【流水分析】上传文件请求: groupId={}, fileName={}", groupId, file.getOriginalFilename()); + public UploadFileResponse uploadFile(Integer groupId, File file) { + log.info("【流水分析】上传文件请求: groupId={}, fileName={}", groupId, file.getName()); long startTime = System.currentTimeMillis(); try { diff --git a/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/controller/LsfxTestController.java b/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/controller/LsfxTestController.java index 37346aa..3b79f1f 100644 --- a/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/controller/LsfxTestController.java +++ b/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/controller/LsfxTestController.java @@ -18,6 +18,12 @@ import jakarta.annotation.Resource; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.StandardCopyOption; + /** * 流水分析平台接口测试控制器 */ @@ -76,8 +82,28 @@ public class LsfxTestController { return AjaxResult.error("文件大小超过限制:最大10MB"); } - UploadFileResponse response = lsfxAnalysisClient.uploadFile(groupId, file); - return AjaxResult.success(response); + // 将 MultipartFile 转换为 File + Path tempFile = null; + try { + // 创建临时文件 + tempFile = Files.createTempFile("upload_", "_" + file.getOriginalFilename()); + Files.copy(file.getInputStream(), tempFile, StandardCopyOption.REPLACE_EXISTING); + + File convertedFile = tempFile.toFile(); + UploadFileResponse response = lsfxAnalysisClient.uploadFile(groupId, convertedFile); + return AjaxResult.success(response); + } catch (IOException e) { + return AjaxResult.error("文件转换失败:" + e.getMessage()); + } finally { + // 删除临时文件 + if (tempFile != null) { + try { + Files.deleteIfExists(tempFile); + } catch (IOException e) { + // 忽略删除失败 + } + } + } } @Operation(summary = "拉取行内流水", description = "从数仓拉取行内流水数据")