From db0bd438551b8c646ede133bebdb5eae899b3cb3 Mon Sep 17 00:00:00 2001 From: Lukasz Lenart Date: Sun, 17 Mar 2024 17:45:32 +0100 Subject: [PATCH] Converts multiple file uploads example to use Action based upload --- .../MultipleFileUploadUsingArrayAction.java | 82 ++++++++--------- .../MultipleFileUploadUsingListAction.java | 88 +++++++++---------- 2 files changed, 76 insertions(+), 94 deletions(-) diff --git a/apps/showcase/src/main/java/org/apache/struts2/showcase/fileupload/MultipleFileUploadUsingArrayAction.java b/apps/showcase/src/main/java/org/apache/struts2/showcase/fileupload/MultipleFileUploadUsingArrayAction.java index dcf671e5e..59ea954e2 100644 --- a/apps/showcase/src/main/java/org/apache/struts2/showcase/fileupload/MultipleFileUploadUsingArrayAction.java +++ b/apps/showcase/src/main/java/org/apache/struts2/showcase/fileupload/MultipleFileUploadUsingArrayAction.java @@ -22,61 +22,51 @@ 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; /** * Showcase action - mutiple file upload using array. - * - * @version $Date$ $Id$ */ -public class MultipleFileUploadUsingArrayAction extends ActionSupport { +public class MultipleFileUploadUsingArrayAction extends ActionSupport implements UploadedFilesAware { - private File[] uploads = new File[0]; - private String[] uploadFileNames = new String[0]; - private String[] uploadContentTypes = new String[0]; + private List uploadedFiles; + public String upload() throws Exception { + System.out.println("\n\n upload2"); + System.out.println("files:"); + for (UploadedFile u : uploadedFiles) { + System.out.println("*** " + u + "\t" + u.length()); + } + System.out.println("filenames:"); + for (String n : getUploadFileNames()) { + System.out.println("*** " + n); + } + System.out.println("content types:"); + for (String c : getUploadContentTypes()) { + System.out.println("*** " + c); + } + System.out.println("\n\n"); + return SUCCESS; + } - public String upload() throws Exception { - System.out.println("\n\n upload2"); - System.out.println("files:"); - for (File u : uploads) { - System.out.println("*** " + u + "\t" + u.length()); - } - System.out.println("filenames:"); - for (String n : uploadFileNames) { - System.out.println("*** " + n); - } - System.out.println("content types:"); - for (String c : uploadContentTypes) { - System.out.println("*** " + c); - } - System.out.println("\n\n"); - return SUCCESS; - } + @Override + public void withUploadedFiles(List uploadedFiles) { + this.uploadedFiles = uploadedFiles; + } - public File[] getUpload() { - return this.uploads; - } + private String[] getUploadFileNames() { + return this.uploadedFiles.stream() + .map(UploadedFile::getOriginalName) + .toArray(String[]::new); + } - public void setUpload(File[] upload) { - this.uploads = upload; - } + private String[] getUploadContentTypes() { + return this.uploadedFiles.stream() + .map(UploadedFile::getContentType) + .toArray(String[]::new); + } - public String[] getUploadFileName() { - return this.uploadFileNames; - } - - public void setUploadFileName(String[] uploadFileName) { - this.uploadFileNames = uploadFileName; - } - - public String[] getUploadContentType() { - return this.uploadContentTypes; - } - - public void setUploadContentType(String[] uploadContentType) { - this.uploadContentTypes = uploadContentType; - } } -// END SNIPPET: entire-file \ No newline at end of file diff --git a/apps/showcase/src/main/java/org/apache/struts2/showcase/fileupload/MultipleFileUploadUsingListAction.java b/apps/showcase/src/main/java/org/apache/struts2/showcase/fileupload/MultipleFileUploadUsingListAction.java index 7b4325e98..e60b0df3e 100644 --- a/apps/showcase/src/main/java/org/apache/struts2/showcase/fileupload/MultipleFileUploadUsingListAction.java +++ b/apps/showcase/src/main/java/org/apache/struts2/showcase/fileupload/MultipleFileUploadUsingListAction.java @@ -22,64 +22,56 @@ 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.ArrayList; import java.util.List; +import java.util.stream.Collectors; /** * Showcase action - multiple file upload using List - * - * @version $Date$ $Id$ */ -public class MultipleFileUploadUsingListAction extends ActionSupport { +public class MultipleFileUploadUsingListAction extends ActionSupport implements UploadedFilesAware { - private List uploads = new ArrayList<>(); - private List uploadFileNames = new ArrayList<>(); - private List uploadContentTypes = new ArrayList<>(); + private List uploads = new ArrayList<>(); + public List getUpload() { + return this.uploads; + } - public List getUpload() { - return this.uploads; - } + @Override + public void withUploadedFiles(List uploads) { + this.uploads = uploads; + } - public void setUpload(List uploads) { - this.uploads = uploads; - } + private List getUploadFileNames() { + return this.uploads.stream() + .map(UploadedFile::getOriginalName) + .collect(Collectors.toList()); + } - public List getUploadFileName() { - return this.uploadFileNames; - } + private List getUploadContentTypes() { + return this.uploads.stream() + .map(UploadedFile::getContentType) + .collect(Collectors.toList()); + } - public void setUploadFileName(List uploadFileNames) { - this.uploadFileNames = uploadFileNames; - } - - public List getUploadContentType() { - return this.uploadContentTypes; - } - - public void setUploadContentType(List contentTypes) { - this.uploadContentTypes = contentTypes; - } - - public String upload() throws Exception { - - System.out.println("\n\n upload1"); - System.out.println("files:"); - for (File u : uploads) { - System.out.println("*** " + u + "\t" + u.length()); - } - System.out.println("filenames:"); - for (String n : uploadFileNames) { - System.out.println("*** " + n); - } - System.out.println("content types:"); - for (String c : uploadContentTypes) { - System.out.println("*** " + c); - } - System.out.println("\n\n"); - return SUCCESS; - } -} -// END SNIPPET: entire-file \ No newline at end of file + public String upload() throws Exception { + System.out.println("\n\n upload1"); + System.out.println("files:"); + for (UploadedFile u : uploads) { + System.out.println("*** " + u + "\t" + u.length()); + } + System.out.println("filenames:"); + for (String n : getUploadFileNames()) { + System.out.println("*** " + n); + } + System.out.println("content types:"); + for (String c : getUploadContentTypes()) { + System.out.println("*** " + c); + } + System.out.println("\n\n"); + return SUCCESS; + } +} \ No newline at end of file