From 2071d04c08ab22a77f9e59411b172b74962142ec Mon Sep 17 00:00:00 2001 From: wkc <978997012@qq.com> Date: Wed, 6 May 2026 14:49:47 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=B5=81=E6=B0=B4=E5=88=86?= =?UTF-8?q?=E6=9E=90=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E5=90=8D=E4=BC=A0?= =?UTF-8?q?=E9=80=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/lsfx/client/LsfxAnalysisClient.java | 13 ++++++++++-- .../java/com/ruoyi/lsfx/util/HttpUtil.java | 21 +++++++++++++++++++ 2 files changed, 32 insertions(+), 2 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 3630b50b..643bb983 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,6 +15,7 @@ import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; import java.io.File; import java.util.Arrays; @@ -110,7 +111,15 @@ public class LsfxAnalysisClient { * 上传文件 */ public UploadFileResponse uploadFile(Integer groupId, File file) { - log.info("【流水分析】上传文件请求: groupId={}, fileName={}", groupId, file.getName()); + return uploadFile(groupId, file, file.getName()); + } + + /** + * 上传文件 + */ + public UploadFileResponse uploadFile(Integer groupId, File file, String uploadFileName) { + String multipartFileName = StringUtils.hasText(uploadFileName) ? uploadFileName : file.getName(); + log.info("【流水分析】上传文件请求: groupId={}, fileName={}", groupId, multipartFileName); long startTime = System.currentTimeMillis(); try { @@ -118,7 +127,7 @@ public class LsfxAnalysisClient { Map params = new HashMap<>(); params.put("groupId", groupId); - params.put("files", file); + params.put("files", HttpUtil.namedFileResource(file, multipartFileName)); Map headers = new HashMap<>(); headers.put(LsfxConstants.HEADER_CLIENT_ID, clientId); diff --git a/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/util/HttpUtil.java b/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/util/HttpUtil.java index 469152e9..fecc5d49 100644 --- a/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/util/HttpUtil.java +++ b/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/util/HttpUtil.java @@ -10,6 +10,7 @@ import org.springframework.http.*; import org.springframework.stereotype.Component; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; +import org.springframework.util.StringUtils; import org.springframework.web.client.RestClientException; import org.springframework.web.client.RestTemplate; import org.springframework.web.util.UriComponentsBuilder; @@ -31,6 +32,24 @@ public class HttpUtil { @Resource private ObjectMapper objectMapper; + public static org.springframework.core.io.Resource namedFileResource(File file, String filename) { + return new NamedFileSystemResource(file, filename); + } + + private static class NamedFileSystemResource extends FileSystemResource { + private final String filename; + + NamedFileSystemResource(File file, String filename) { + super(file); + this.filename = StringUtils.hasText(filename) ? filename : file.getName(); + } + + @Override + public String getFilename() { + return filename; + } + } + /** * 发送GET请求(带查询参数和请求头) * @param url 请求URL @@ -207,6 +226,8 @@ public class HttpUtil { if (value instanceof File) { File file = (File) value; body.add(key, new FileSystemResource(file)); + } else if (value instanceof org.springframework.core.io.Resource) { + body.add(key, value); } else { body.add(key, value); }