首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Struts 實現多圖片上傳完整實戰代碼詳解

     編輯:Java 相關知識

本文提供一套基於 Struts 1.x 的多文件上傳完整實現,涵蓋常量配置、上傳核心邏輯、Action 處理、FormBean 定義、JSP 頁面(動態增減上傳欄位)、結果展示及 struts-config.xml 配置。

核心類別職責

  • Constant:集中管理上傳限制(10MB)、儲存目錄(upload\)。
  • PictureUpLoad:靜態工具類,封裝文件驗證(副檔名白名單)、重命名(時間戳防衝突)、目錄自動建立、流式寫入(8KB 緩衝區)、多文件迭代處理。
  • UploadAction:Struts Action,委派 PictureUpLoad 執行上傳,將回傳文件名陣列放入 request 屬性轉向結果頁。
  • UploadForm:繼承 ActionForm,僅包含 name 欄位,作為表單數據載體。

前端關鍵技術點

<form method="post" action="upload.do" enctype="multipart/form-data">
  <input type="file" name="temp">
  <input type="button" value="多圖片上傳" onclick="addRow()">
</form>
  • enctype="multipart/form-data":啟用文件上傳編碼,Struts MultipartRequestHandler 依此解析請求。
  • JavaScript 動態增減行:addRow() 插入新 <input type="file">,名稱遞增(file1, file2...);deleteRow() 移除指定行。

結果展示與配置

next.jsp 使用 JSTL <c:forEach> 遍歷 ${fileNames} 輸出 <img> 標籤預覽圖片。struts-config.xml 映射 /upload 至 UploadAction,輸入頁 new.jsp,成功轉向 /next.jsp。

代碼亮點與改進方向

  • ✅ 白名單驗證副檔名,防惡意上傳
  • ✅ 時間戳重命名避免衝突
  • ✅ 流式讀寫控制記憶體佔用
  • ⚠️ Struts 1.x 已停止維護,建議遷移至 Struts 2 / Spring MVC + Commons FileUpload / Servlet 3.0 @MultipartConfig
  • ⚠️ 文件內容類型驗證僅檢查 Content-Type 標頭,建議增加魔數檢測
  • ⚠️ 儲存路徑硬編碼,建議外部化配置
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved