From 3b7371aca03416e5372bea5a9cd26234f680ed77 Mon Sep 17 00:00:00 2001 From: aipper Date: Mon, 24 Nov 2025 17:19:23 +0800 Subject: [PATCH] init --- .../AnjuanAndJuanneiController.java | 28 +++++++++++++++---- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/point/strategy/originBatchUpload/AnjuanAndJuanneiController.java b/src/main/java/com/point/strategy/originBatchUpload/AnjuanAndJuanneiController.java index 755e267..dc3df5c 100644 --- a/src/main/java/com/point/strategy/originBatchUpload/AnjuanAndJuanneiController.java +++ b/src/main/java/com/point/strategy/originBatchUpload/AnjuanAndJuanneiController.java @@ -44,6 +44,8 @@ import java.util.concurrent.RejectedExecutionException; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; import java.util.concurrent.Semaphore; +import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -274,19 +276,35 @@ public class AnjuanAndJuanneiController { // 获取所有文件,包括同名字段的多个文件 Map fileMap = multipartRequest.getFileMap(); - logger.info("接收到文件数量: {}", fileMap.size()); + logger.info("getFileMap() 接收到文件数量: {}", fileMap.size()); + // 尝试获取名为 "file" 的多文件数组 + List allFiles = new ArrayList<>(); + try { + List files = multipartRequest.getFiles("file"); + if (files != null && files.size() > 0) { + logger.info("getFiles('file') 接收到文件数量: {}", files.size()); + allFiles.addAll(files); + } else { + // 回退到 getFileMap + allFiles.addAll(fileMap.values()); + logger.info("回退到 getFileMap 方法,文件数量: {}", allFiles.size()); + } + } catch (Exception e) { + logger.warn("获取文件数组失败,使用 getFileMap: {}", e.getMessage()); + allFiles.addAll(fileMap.values()); + } + + logger.info("最终处理文件数量: {}", allFiles.size()); int fileIndex = 0; - for (Map.Entry entry : fileMap.entrySet()) { + for (MultipartFile file0 : allFiles) { boolean acquired = false; try { uploadSemaphore.acquire(); // 最多并行处理3个文件 acquired = true; fileIndex++; - String fieldName = entry.getKey(); - MultipartFile file0 = entry.getValue(); - logger.info("处理第{}个文件: 字段名={}, 文件名={}", fileIndex, fieldName, file0.getOriginalFilename()); + logger.info("处理第{}个文件: 文件名={}, 大小={} bytes", fileIndex, file0.getOriginalFilename(), file0.getSize()); if (file0 == null || file0.isEmpty()) { logger.warn("第{}个文件为空,跳过", fileIndex);