This is an automated email from the ASF dual-hosted git repository. lukaszlenart pushed a commit to branch fix/file-uploads in repository https://gitbox.apache.org/repos/asf/struts.git
commit db0bd438551b8c646ede133bebdb5eae899b3cb3 Author: Lukasz Lenart <lukaszlen...@apache.org> AuthorDate: Sun Mar 17 17:45:32 2024 +0100 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 { - - private File[] uploads = new File[0]; - private String[] uploadFileNames = new String[0]; - private String[] uploadContentTypes = new String[0]; - - - 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; - } +public class MultipleFileUploadUsingArrayAction extends ActionSupport implements UploadedFilesAware { - public File[] getUpload() { - return this.uploads; - } + private List<UploadedFile> uploadedFiles; - public void setUpload(File[] upload) { - this.uploads = upload; - } + 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[] getUploadFileName() { - return this.uploadFileNames; - } + @Override + public void withUploadedFiles(List<UploadedFile> uploadedFiles) { + this.uploadedFiles = uploadedFiles; + } - public void setUploadFileName(String[] uploadFileName) { - this.uploadFileNames = uploadFileName; - } + private String[] getUploadFileNames() { + return this.uploadedFiles.stream() + .map(UploadedFile::getOriginalName) + .toArray(String[]::new); + } - public String[] getUploadContentType() { - return this.uploadContentTypes; - } + private String[] getUploadContentTypes() { + return this.uploadedFiles.stream() + .map(UploadedFile::getContentType) + .toArray(String[]::new); + } - 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 { - - private List<File> uploads = new ArrayList<>(); - private List<String> uploadFileNames = new ArrayList<>(); - private List<String> uploadContentTypes = new ArrayList<>(); - - - public List<File> getUpload() { - return this.uploads; - } - - public void setUpload(List<File> uploads) { - this.uploads = uploads; - } +public class MultipleFileUploadUsingListAction extends ActionSupport implements UploadedFilesAware { - public List<String> getUploadFileName() { - return this.uploadFileNames; - } + private List<UploadedFile> uploads = new ArrayList<>(); - public void setUploadFileName(List<String> uploadFileNames) { - this.uploadFileNames = uploadFileNames; - } + public List<UploadedFile> getUpload() { + return this.uploads; + } - public List<String> getUploadContentType() { - return this.uploadContentTypes; - } + @Override + public void withUploadedFiles(List<UploadedFile> uploads) { + this.uploads = uploads; + } - public void setUploadContentType(List<String> contentTypes) { - this.uploadContentTypes = contentTypes; - } + private List<String> getUploadFileNames() { + return this.uploads.stream() + .map(UploadedFile::getOriginalName) + .collect(Collectors.toList()); + } - public String upload() throws Exception { + private List<String> getUploadContentTypes() { + return this.uploads.stream() + .map(UploadedFile::getContentType) + .collect(Collectors.toList()); + } - 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