使用 Spring multipartResolver 處理檔案上傳,期望實現進度條監控。開發者發現 parseRequest(HttpServletRequest request) 僅在專案部署時進入一次,後續上傳不再觸發,且配置似乎未生效。
parseRequest 並非每次上傳都會調用,取決於具體實作類(如 CommonsMultipartResolver)的內部邏輯。multipartResolver Bean 定義缺少 maxUploadSize、maxInMemorySize 等關鍵屬性,或與 Servlet 3.0+ 內建 multipart 支援衝突。ProgressListener 並透過 DiskFileItemFactory 設定,單靠重寫 parseRequest 無法捕獲進度。檢查 try-catch 區塊內是否吞沒異常;確認 web.xml 或 Java Config 中 multipartResolver Bean 名稱與 Spring 預期一致(通常為 "multipartResolver");若使用 Servlet 3.0,請在 @MultipartConfig 或 <multipart-config> 設定上傳參數,並移除舊版 Resolver。

MultipartFile 支援,配合 ServletFileUpload 進度監聽。XMLHttpRequest.upload.onprogress 取得進度事件,定期輪詢後端進度 API。