Re: improve documentation for UploadedFilesAware

Lukasz Lenart <[email protected]>
Newsgroups gmane.comp.jakarta.struts.devel
Message-ID <CAMopvkMRr2iSkCCwpNAX24a+FvoqpyvG5+thxveuSHBJjE80ZA@mail.gmail.com>
Added :) Also adjusted the Showcase https://github.com/apache/struts/pull/895

niedz., 17 mar 2024 o 12:29 Greg Huber <[email protected]> napisał(a):
>
> 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<[email protected]>  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<[email protected]>  wrote:
> >>
> >>> Done
> >>> https://github.com/apache/struts-site/pull/231
> >>>
> >>> czw., 14 mar 2024 o 11:35 Greg Huber<[email protected]>  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<[email protected]>   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:[email protected]
> >>>>> For additional commands,e-mail:[email protected]
> >>>>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail:[email protected]
> >>> For additional commands, e-mail:[email protected]
> >>>
> >>>
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail:[email protected]
> > For additional commands, e-mail:[email protected]
> >
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.