This commit is contained in:
2025-11-24 16:14:12 +08:00
parent e604bacfa6
commit 85953347db

View File

@@ -271,17 +271,22 @@ public class AnjuanAndJuanneiController {
// 使用NIO方式迭代处理文件避免一次性加载所有文件到内存 // 使用NIO方式迭代处理文件避免一次性加载所有文件到内存
if (request instanceof MultipartHttpServletRequest) { if (request instanceof MultipartHttpServletRequest) {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Iterator<String> iterator = multipartRequest.getFileNames();
int fileIndex = 0;
while (iterator.hasNext()) { // 获取所有文件,包括同名字段的多个文件
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
logger.info("接收到文件数量: {}", fileMap.size());
int fileIndex = 0;
for (Map.Entry<String, MultipartFile> entry : fileMap.entrySet()) {
boolean acquired = false; boolean acquired = false;
try { try {
uploadSemaphore.acquire(); // 最多并行处理3个文件 uploadSemaphore.acquire(); // 最多并行处理3个文件
acquired = true; acquired = true;
fileIndex++; fileIndex++;
String name = iterator.next(); String fieldName = entry.getKey();
MultipartFile file0 = multipartRequest.getFile(name); MultipartFile file0 = entry.getValue();
logger.info("处理第{}个文件: 字段名={}, 文件名={}", fileIndex, fieldName, file0.getOriginalFilename());
if (file0 == null || file0.isEmpty()) { if (file0 == null || file0.isEmpty()) {
logger.warn("第{}个文件为空,跳过", fileIndex); logger.warn("第{}个文件为空,跳过", fileIndex);
@@ -344,7 +349,7 @@ public class AnjuanAndJuanneiController {
map7.put("id", recId); map7.put("id", recId);
danganguanliService.wsajmlTempCount(map7); danganguanliService.wsajmlTempCount(map7);
AjaxJson json = AjaxJson.returnInfo("成功上传数successNum,失败上传数falseNum"); AjaxJson json = AjaxJson.returnInfo("成功上传数:"+successNum+",失败上传数:"+falseNum);
json.put("successNum", successNum); json.put("successNum", successNum);
json.put("falseNum", falseNum); json.put("falseNum", falseNum);
return json; return json;