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

Struts2 多檔案上傳完整實作教學與範例代碼

     編輯:Java 相關知識

開發環境與前置準備

  • JDK 1.8、Eclipse、Struts 2.3.31
  • 建立 Web 專案並導入 Struts2 核心 JAR 包
  • 配置 web.xml 註冊 Struts2 Filter

Struts 核心配置 (struts.xml)

關鍵常數設定:

  • struts.action.extension 設為 do
  • struts.multipart.maxSize 上傳檔案大小限制 (10MB)
  • struts.multipart.saveDir 暫存目錄

Action 映射範例:

<action name="fileUpload" class="com.ifan.action.FileUpload">
    <param name="savePath">WEB-INF/images</param>
    <result name="success">/success.jsp</result>
    <result name="input">/error.jsp</result>
    <interceptor-ref name="fileUpload">
        <param name="allowedTypes">image/bmp,image/png,image/gif,image/jpeg</param>
        <param name="maximumSize">1025956</param>
    </interceptor-ref>
    <interceptor-ref name="defaultStack" />
</action>

Action 處理類 (FileUpload.java)

public class FileUpload extends ActionSupport {
    private File[] image;
    private String[] imageFileName;
    private String[] imageContentType;

    public String execute() throws Exception {
        ServletActionContext.getRequest().setCharacterEncoding("UTF-8");
        String realpath = ServletActionContext.getServletContext().getRealPath("/images");
        File savedir = new File(realpath);
        if (!savedir.getParentFile().exists()) savedir.getParentFile().mkdirs();

        if (image != null) {
            for (int i = 0; i < image.length; i++) {
                File savefile = new File(savedir, imageFileName[i]);
                FileUtils.copyFile(image[i], savefile);
            }
            ActionContext.getContext().put("message", "文件上傳成功");
        }
        return "success";
    }
    // getter/setter 略
}

前端 JSP 頁面 (index.jsp)

<s:form action="fileUpload" namespace="/" method="POST" enctype="multipart/form-data">
    <s:file name="image" label="Select a File to upload" size="40" />
    <s:file name="image" label="Select a File to upload" size="40" />
    <s:submit value="submit" name="submit" />
</s:form>

結果頁面與存放目錄

建立 success.jsp、error.jsp 以及 WebContent/images 資料夾作為上傳檔案儲存位置。

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