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); }