init
This commit is contained in:
@@ -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<String, MultipartFile> fileMap = multipartRequest.getFileMap();
|
||||
logger.info("接收到文件数量: {}", fileMap.size());
|
||||
logger.info("getFileMap() 接收到文件数量: {}", fileMap.size());
|
||||
|
||||
// 尝试获取名为 "file" 的多文件数组
|
||||
List<MultipartFile> allFiles = new ArrayList<>();
|
||||
try {
|
||||
List<MultipartFile> 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<String, MultipartFile> 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);
|
||||
|
||||
Reference in New Issue
Block a user