Using Struts 2 to upload file

Jsp page

  • method should be “post”
  • configure enctype=”multipart/form-data”
    1
    2
    3
    4
    5
    <FORM id=form1 name=form1
    action="${pageContext.request.contextPath }/linkman_addLinkMan.action"
    method="post" enctype="multipart-form/data">
    <input type="file" name="upload">

Action file

  • define encapsulated variables and their get()&set()

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    // this "upload" should be the same as the "upload" in the jsp file
    private File upload;
    // file name should be (file object variable + "FileName")
    private String uploadFileName;
    public File getUpload() {
    return upload;
    }
    public void setUpload(File upload) {
    this.upload = upload;
    }
    public String getUploadFileName() {
    return uploadFileName;
    }
    public void setUploadFileName(String uploadFileName) {
    this.uploadFileName = uploadFileName;
    }
  • do upload
    1
    2
    3
    4
    5
    6
    7
    // judge if user wants to upload file
    if (upload != null) {
    // create a file in server, "/" equals to "\\"
    File serverFile = new File("C:\\Users\\Peter\\Desktop\\test" + "/" + uploadFileName);
    // uploading
    FileUtils.copyFile(upload, serverFile);
    }