You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2024/03/17 16:45:39 UTC
(struts) 01/01: Converts multiple file uploads example to use Action based upload
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 <lu...@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