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]
