首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

AjaxFileUpload 多檔案非同步上傳獲取不到 File 物件的排查與解決

     編輯:程式設計疑難解答

常見原因清單

  1. 表單屬性缺失:<form enctype="multipart/form-data"> 必須設置。
  2. input name 不一致:後端 multipartRequest.getFile("imgName") 的參數必須與前端 <input type="file" name="imgName"> 的 name 完全一致。
  3. MultipartResolver 配置:Spring MVC 需註冊 CommonsMultipartResolver 或 StandardServletMultipartResolver,且 maxUploadSize 足夠大。
  4. 同一頁面多個上傳區域:若共用同一 <form>,確保每個 input file 的 name 唯一;若分離表單,需分別綁定 AjaxFileUpload 實例。
  5. 檢查請求體:用瀏覽器開發者工具 Network 面板查看 Form Data 是否包含檔案二進制內容。

調試建議

// Controller 斷點檢查
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
System.out.println("參數列表: " + Collections.list(multipartRequest.getParameterNames()));
System.out.println("檔案列表: " + Collections.list(multipartRequest.getFileNames()));
multipartRequest.getFileMap().forEach((k, v) -> System.out.println(k + " -> " + v.getOriginalFilename()));

替代方案

若 AjaxFileUpload 持續出現問題,建議改用 FormData + 原生 fetch/axios 直傳後端 @RequestParam MultipartFile,更符合現代前端規範。

調試截圖
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved