Looks good, but what happened to the examples with the stream stuff?

Something like this for MultipleFileUploadUsingArrayActionusing arrays example?


public class MultipleFileUploadUsingArrayAction extends ActionSupport
        implements UploadedFilesAware {

    private List<UploadedFile<File>> uploads = null;

    public String upload() throws Exception {
        System.out.println("\n\n upload2");
        System.out.println("files:");

        for (UploadedFile<File> uploadedFile : this.uploads) {
            System.out.println("*** " + uploadedFile.getOriginalName() + "\t"
                    + uploadedFile.getContentType() + "\t"
                    + uploadedFile.length());
        }
        System.out.println("filenames:");
        String[] uploadFileNames = getUploadedFilesFileNames();
        for (String n : uploadFileNames) {
            System.out.println("*** " + n);
        }
        System.out.println("content types:");
        String[] uploadContentTypes = getUploadedFilesContentType();
        for (String c : uploadContentTypes) {
            System.out.println("*** " + c);
        }
        System.out.println("\n\n");
        return SUCCESS;
    }

    @Override
    public void withUploadedFiles(List<UploadedFile<File>> uploadedFiles) {
        this.uploads = uploadedFiles;
    }

    private String[] getUploadedFilesFileNames() {
        return this.uploads.stream().map(UploadedFile::getOriginalName)
                .toArray(size -> new String[size]);
    }

    private String[] getUploadedFilesContentType() {
        return this.uploads.stream().map(UploadedFile::getContentType)
                .toArray(size -> new String[size]);
    }
}


On 17/03/2024 09:33, Lukasz Lenart wrote:
Better?
https://struts.staged.apache.org/core-developers/action-file-upload
https://struts.staged.apache.org/core-developers/file-upload

czw., 14 mar 2024 o 15:29 Greg Huber<gregh3...@gmail.com>  napisał(a):
Sorry, I meant we need to copy/duplicate this page :

https://struts.apache.org/core-developers/file-upload.html

to an *action* version:

https://struts.apache.org/core-developers/action-file-upload.html

and modify it for the new interceptor methods/logic

On Thu, 14 Mar 2024 at 12:42, Łukasz Lenart<lukasz.len...@gmail.com>  wrote:

Done
https://github.com/apache/struts-site/pull/231

czw., 14 mar 2024 o 11:35 Greg Huber<gregh3...@gmail.com>  napisał(a):
There is a really good page for the old upload

https://struts.apache.org/core-developers/file-upload.html

But the << back to Core Developers Guide does not make it easy to find
it again.

##

https://struts.apache.org/core-developers/action-file-upload-interceptor

would benefit a similar detail page, updated and with the stream stuff.

return
this.uploadedFiles.stream().map(UploadedFile::getContentType).toArray();
otherwise without streams

List<UploadedFile<File>>uploads =this.uploadedFiles;

if(uploads !=null&&uploads.size()>0){

for(inti =0;i <uploads.size();i++){

String file uploads.get(i).getOriginalName();

// destroy the temporary file created

uploads.get(i).delete();

}

}

On 12/03/2024 19:48, Lukasz Lenart wrote:
pon., 26 lut 2024 o 12:08 Greg Huber<gregh3...@gmail.com>   napisał(a):
The documentation only lists one file

|public void withUploadedFiles(List<UploadedFile> uploadedFiles) { if
(!uploadedFiles.isEmpty()) { this.uploadedFile = uploadedFiles.get(0);
this.fileName = uploadedFile.getName(); this.contentType =
uploadedFile.getContentType(); this.originalName =
uploadedFile.getOriginalName(); } }|

For multiple files these need populating

privateFile[]uploadedFiles=null;

privateString[]uploadedFilesContentType=null;

privateString[]uploadedFilesFileName=null;

We have to loop and do it ourselves now?
Basically it would be better to stop using additional fields if not
needed. You can achieve the same behaviour just exposing getters
extracting what's needed from "uploadedFiles", eg:

public void withUploadedFiles(List<UploadedFile> uploadedFiles) {
    this.uploadedFiles = uploadedFiles;
}

public String[] getUploadedFilesContentType() {
    return
this.uploadedFiles.stream().map(UploadedFile::getContentType).toArray();
}

etc.


Cheers
Lukasz

---------------------------------------------------------------------
To unsubscribe,e-mail:dev-unsubscr...@struts.apache.org
For additional commands,e-mail:dev-h...@struts.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail:dev-unsubscr...@struts.apache.org
For additional commands, e-mail:dev-h...@struts.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail:dev-unsubscr...@struts.apache.org
For additional commands, e-mail:dev-h...@struts.apache.org

Reply via email to