Ohh sorry about my current configuration that I shared but I was trying many options. First I was trying exactly refer to the documentation but I did not have success.
1. According to the docs, it’s unnecessary put interceptor refer again, because defaultStack consider use actionFileUpload interceptor but I referred manually. (I suppose that is necessary but I was trying without both refers, actionFileUpload and defaultStack and nothing) 2. Mi jsp looks like this: <s:form action="myAction" enctype="multipart/form-data" method="POST"> <s:file name=“upload” label=“Select a file” /> <s:submit>Upload</s:submit> </s:form> 3. As you can see first I am trying to test a basic example because I’d like to understand how do I upload a file in the new version because I am migrating an app. Finally I did not understand if you had success to upload a file to the server. It is true? That’s why I ask for your support. I appreciate your assistance. Regards On 10 May 2025 at 2:57:02 AM -0600, Ute Kaiser <ut...@web.de.invalid>, wrote: > Hi, > > I tried the same last week for the first time, and here is my experience: > 1. > WARN [org.apache.struts2.components.File] (default task-5) Struts has > detected a file upload UI tag (s:file) being used without a form set to > method 'POST'. This is probably an error! > I used <s:form> and it was rendered automatically to method=post but to get > rid of the warning I had to set it manually > <s:form action="myAction" enctype="multipart/form-data" method="POST"> > 2. > MyAction.java looks pretty much the same as your HelloAction.java. > But it helped me to use "newLogo" instead of "upload" in jsp and action class. > 3. > I did not use any of your struts.xml configuration. > a) > <interceptor-ref name="actionFileUpload" /> > <interceptor-ref name="basicStack" /> > I think "actionFileUplad" is enclosed in the "defaultStack". > I do not know about this "basicStack" you copied from the documentation > example. > b) > <constant name="struts.multipart.parser" value="jakarta" /> > <constant name="struts.multipart.maxSize" value="10485760" /> <!-- 10MB --> > <constant name="struts.multipart.saveDir" value="C: > temp"/> <!-- Ruta absoluta --> > Your saveDir looks strange to me. > I use the default saveDir which turned out as a Wildfly tmp directory, and > then save to my targetPath with: > Files.copy( ( (File) newLogo.getContent() ).toPath(), targetPath, > StandardCopyOption.REPLACE_EXISTING ); > 4. > You did not give much info on your jsp. > Here is my part: <s:file name="newLogo" accept="image/*"/> > > Perhaps you can strip down with less struts.xml configuration to find a > solution to your problem. > Good luck > Ute > > > > Gesendet: Samstag, 10. Mai 2025 um 05:42 > > Von: "Jesus Moreno" <jesus...@gmail.com> > > An: user@struts.apache.org > > Betreff: File Upload Failure in Struts 7.0.3 Migration - UploadedFilesAware > > Implementation Issue > > > > I'm migrating an application from Struts 2.5 to 7.0.3 and encountering > > persistent issues with file upload functionality despite following the > > documentation. > > > > The UploadedFile object remains null in my action class, even with: > > > > - Correct UploadedFilesAware implementation > > - Proper multipart form configuration > > - Debug logs showing no uploaded files (ActionFileUploadInterceptor reports > > empty acceptedFiles) > > > > Logs show: > > > > 2025-05-09 01:00:25 DEBUG ActionFileUploadInterceptor:179 - No files have > > been uploaded/accepted > > 2025-05-09 01:00:25 WARN File:79 - Struts has detected a file upload UI tag > > (s:file) being used without a form set to method 'POST' > > (Despite <s:form method="POST" enctype="multipart/form-data"> being > > correctly declared) > > > > Basic action: > > // Action > > public class HelloAction extends ActionSupport implements > > UploadedFilesAware { > > public UploadedFile upload; // Always null > > > > @Override > > public String execute() { > > //do something with the file > > return SUCCESS; > > } > > @Override > > public void withUploadedFiles(List<UploadedFile> uploadedFiles) { > > if (!uploadedFiles.isEmpty()) { > > //This never execute cause always is empty > > this.upload = uploadedFiles.get(0); // Never reached > > } > > } > > } > > struts.xml: > > <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts > > Configuration 6.5//EN" > > "https://struts.apache.org/dtds/struts-6.5.dtd"> > > <struts> > > <constant name="struts.multipart.parser" value="jakarta" /> > > <constant name="struts.multipart.maxSize" value="10485760" /> <!-- 10MB > > --> > > <constant name="struts.multipart.saveDir" value="C: > > temp"/> <!-- Ruta absoluta --> > > <package name="default" extends="struts-default"> > > > > <action name=""><result>/hello.jsp</result></action> > > > > <action name="hello" > > class="mx.com.jeser.ejemplo.actions.HelloAction"> > > <interceptor-ref name="actionFileUpload" /> > > <interceptor-ref name="basicStack" /> > > <result name="success">/success.jsp</result> > > <result name="input">/input.jsp</result> > > <result name="error">/error.jsp</result> > > </action> > > </package></struts> > > > > We are trying to implement the new features according the follow docs for > > version 7.0.3: > > > > https://struts.apache.org/security/#defining-and-annotating-your-action-parameters > > https://struts.apache.org/core-developers/action-file-upload-interceptor > > > > I would greatly appreciate your assistance in identifying if we might be > > overlooking any undocumented requirements or configurations. > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > For additional commands, e-mail: user-h...@struts.apache.org >