This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a commit to branch feature/WW-5371-modern-upload
in repository https://gitbox.apache.org/repos/asf/struts.git

commit dc4103bcb55fa56176bdf014a3f9551cf57fb350
Author: Lukasz Lenart <lukaszlen...@apache.org>
AuthorDate: Mon Dec 11 07:56:38 2023 +0100

    WW-5371 Uses the new upload mechanism in Showcase app
---
 .../showcase/fileupload/FileUploadAction.java      | 101 ++++++++++-----------
 .../webapp/WEB-INF/fileupload/upload-success.jsp   |   9 +-
 .../dispatcher/multipart/StrutsUploadedFile.java   |   8 ++
 3 files changed, 61 insertions(+), 57 deletions(-)

diff --git 
a/apps/showcase/src/main/java/org/apache/struts2/showcase/fileupload/FileUploadAction.java
 
b/apps/showcase/src/main/java/org/apache/struts2/showcase/fileupload/FileUploadAction.java
index ed8a11b48..246f8ad70 100644
--- 
a/apps/showcase/src/main/java/org/apache/struts2/showcase/fileupload/FileUploadAction.java
+++ 
b/apps/showcase/src/main/java/org/apache/struts2/showcase/fileupload/FileUploadAction.java
@@ -21,75 +21,70 @@
 package org.apache.struts2.showcase.fileupload;
 
 import com.opensymphony.xwork2.ActionSupport;
+import org.apache.struts2.action.UploadedFilesAware;
+import org.apache.struts2.dispatcher.multipart.UploadedFile;
 
 import java.io.File;
+import java.util.List;
 
 /**
  * Show case File Upload example's action. <code>FileUploadAction</code>
  */
-public class FileUploadAction extends ActionSupport {
+public class FileUploadAction extends ActionSupport implements 
UploadedFilesAware {
 
-       private static final long serialVersionUID = 5156288255337069381L;
+    private static final long serialVersionUID = 5156288255337069381L;
 
-       private String contentType;
-       private File upload;
-       private String fileName;
-       private String caption;
+    private String contentType;
+    private UploadedFile uploadedFile;
+    private String fileName;
+    private String caption;
+    private String originalName;
 
-       public String input() throws Exception {
-               return SUCCESS;
-       }
+    public String input() throws Exception {
+        return SUCCESS;
+    }
 
-       public String upload() throws Exception {
-               return SUCCESS;
-       }
+    public String upload() throws Exception {
+        return SUCCESS;
+    }
 
-       // since we are using <s:file name="upload" .../> the file name will be
-       // obtained through getter/setter of <file-tag-name>FileName
-       public String getUploadFileName() {
-               return fileName;
-       }
+    public String getContentType() {
+        return contentType;
+    }
 
-       public void setUploadFileName(String fileName) {
-               this.fileName = fileName;
-       }
+    public String getFileName() {
+        return fileName;
+    }
 
+    public String getOriginalName() {
+        return originalName;
+    }
 
-       // since we are using <s:file name="upload" ... /> the content type 
will be
-       // obtained through getter/setter of <file-tag-name>ContentType
-       public String getUploadContentType() {
-               return contentType;
-       }
+    public Object getUploadedFile() {
+        return uploadedFile.getContent();
+    }
 
-       public void setUploadContentType(String contentType) {
-               this.contentType = contentType;
-       }
+    public String getCaption() {
+        return caption;
+    }
 
+    public void setCaption(String caption) {
+        this.caption = caption;
+    }
 
-       // since we are using <s:file name="upload" ... /> the File itself will 
be
-       // obtained through getter/setter of <file-tag-name>
-       public File getUpload() {
-               return upload;
-       }
-
-       public void setUpload(File upload) {
-               this.upload = upload;
-       }
-
-
-       public String getCaption() {
-               return caption;
-       }
-
-       public void setCaption(String caption) {
-               this.caption = caption;
-       }
-
-        public long getUploadSize() {
-            if (upload != null) {
-                return upload.length();
-            } else {
-                return 0;
-            }
+    public long getUploadSize() {
+        if (uploadedFile != null) {
+            return uploadedFile.length();
+        } else {
+            return 0;
         }
+    }
+
+    @Override
+    public void withUploadedFiles(List<UploadedFile> uploadedFiles) {
+        this.uploadedFile = uploadedFiles.get(0);
+        this.fileName = uploadedFile.getName();
+        this.contentType = uploadedFile.getContentType();
+        this.originalName = uploadedFile.getOriginalName();
+    }
 }
diff --git 
a/apps/showcase/src/main/webapp/WEB-INF/fileupload/upload-success.jsp 
b/apps/showcase/src/main/webapp/WEB-INF/fileupload/upload-success.jsp
index d50b61be0..a1b06277a 100644
--- a/apps/showcase/src/main/webapp/WEB-INF/fileupload/upload-success.jsp
+++ b/apps/showcase/src/main/webapp/WEB-INF/fileupload/upload-success.jsp
@@ -19,7 +19,7 @@
 */
 -->
 <%@ page
-       language="java" 
+       language="java"
        contentType="text/html; charset=UTF-8"
     pageEncoding="UTF-8"%>
 <%@ taglib prefix="s" uri="/struts-tags" %>
@@ -37,9 +37,10 @@
        <div class="row">
                <div class="col-md-12">
                        <ul>
-                       <li>ContentType: <s:property value="uploadContentType" 
/></li>
-                       <li>FileName: <s:property value="uploadFileName" /></li>
-                       <li>File: <s:property value="upload" /></li>
+                       <li>ContentType: <s:property value="contentType" /></li>
+                       <li>FileName: <s:property value="fileName" /></li>
+                       <li>Original FileName: <s:property value="originalName" 
/></li>
+                       <li>File: <s:property value="uploadedFile" /></li>
                        <li>Caption:<s:property value="caption" /></li>
                </ul>
                </div>
diff --git 
a/core/src/main/java/org/apache/struts2/dispatcher/multipart/StrutsUploadedFile.java
 
b/core/src/main/java/org/apache/struts2/dispatcher/multipart/StrutsUploadedFile.java
index 97cb9cefd..55233d7d7 100644
--- 
a/core/src/main/java/org/apache/struts2/dispatcher/multipart/StrutsUploadedFile.java
+++ 
b/core/src/main/java/org/apache/struts2/dispatcher/multipart/StrutsUploadedFile.java
@@ -79,6 +79,14 @@ public class StrutsUploadedFile implements UploadedFile {
         return originalName;
     }
 
+    @Override
+    public String toString() {
+        return "StrutsUploadedFile{" +
+            "contentType='" + contentType + '\'' +
+            ", originalName='" + originalName + '\'' +
+            '}';
+    }
+
     public static class Builder {
         private final File file;
         private String contentType;

Reply via email to