Bonjour,

je souhaite mettre en place l'upload de plusieurs fichier images avec le framework struts 2.
Pour le moment, j'arrive à uploader un fichier mais pas plusieurs en même temps.
Avez vous une idée de comment je dois m'y prendre.

voici ma classe action :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
 
package action.backoffice.entite;
 
import java.io.File;
import java.util.Map;
 
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
 
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.interceptor.SessionAware;
 
import action.backoffice.LoginAction;
 
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionSupport;
 
import fr.accueil.maison.singleton.Entite;
import fr.accueil.maison.singleton.Image;
import fr.accueil.maison.singleton.Personnel;
 
public class AjoutEntiteAction extends ActionSupport {
 
	//champs du formulaire
	String entiteIdOrg;
	String entiteIdType;
	String nomtype;
	String dateDebut;
	String dateFin;
	String description;
	File imagea;
	File imageb;
	File imagec;
	File imaged;
 
	//champs pour traiter l'image à uploader
	String imageaFileName;
	String imageaContentType;
	String imagebFileName;
	String imagebContentType;
	String imagecFileName;
	String imagecContentType;
	String imagedFileName;
	String imagedContentType;
 
	int publication=0;
 
	public static final String repertoireImageUploadesParLesUtilisateurs = "resources\\image\\imagesUtilisateurs";
 
	//Accesseur
	public String getEntiteIdOrg() {
		return entiteIdOrg;
	}
 
	public void setEntiteIdOrg(String entiteIdOrg) {
		this.entiteIdOrg = entiteIdOrg;
	}
 
	public String getEntiteIdType() {
		return entiteIdType;
	}
 
	public void setEntiteIdType(String entiteIdType) {
		this.entiteIdType = entiteIdType;
	}
 
	public String getNomtype() {
		return nomtype;
	}
 
	public void setNomtype(String nomtype) {
		this.nomtype = nomtype;
	}
 
	public String getDateDebut() {
		return dateDebut;
	}
 
	public void setDateDebut(String dateDebut) {
		this.dateDebut = dateDebut;
	}
 
	public String getDateFin() {
		return dateFin;
	}
 
	public void setDateFin(String dateFin) {
		this.dateFin = dateFin;
	}
 
	public String getDescription() {
		return description;
	}
 
	public void setDescription(String description) {
		this.description = description;
	}		
 
	public File getImagea() {
		return imagea;
	}
 
	public void setImagea(File imagea) {
		this.imagea = imagea;
	}
 
	public File getImageb() {
		return imageb;
	}
 
	public void setImageb(File imageb) {
		this.imageb = imageb;
	}
 
	public File getImagec() {
		return imagec;
	}
 
	public void setImagec(File imagec) {
		this.imagec = imagec;
	}
 
	public File getImaged() {
		return imaged;
	}
 
	public void setImaged(File imaged) {
		this.imaged = imaged;
	}
 
	public String getImageaFileName() {
		return imageaFileName;
	}
 
	public void setImageaFileName(String imageaFileName) {
		this.imageaFileName = imageaFileName;
	}
 
	public String getImageaContentType() {
		return imageaContentType;
	}
 
	public void setImageaContentType(String imageaContentType) {
		this.imageaContentType = imageaContentType;
	}
 
	public String getImagebFileName() {
		return imagebFileName;
	}
 
	public void setImagebFileName(String imagebFileName) {
		this.imagebFileName = imagebFileName;
	}
 
	public String getImagebContentType() {
		return imagebContentType;
	}
 
	public void setImagebContentType(String imagebContentType) {
		this.imagebContentType = imagebContentType;
	}
 
	public String getImagecFileName() {
		return imagecFileName;
	}
 
	public void setImagecFileName(String imagecFileName) {
		this.imagecFileName = imagecFileName;
	}
 
	public String getImagecContentType() {
		return imagecContentType;
	}
 
	public void setImagecContentType(String imagecContentType) {
		this.imagecContentType = imagecContentType;
	}
 
	public String getImagedFileName() {
		return imagedFileName;
	}
 
	public void setImagedFileName(String imagedFileName) {
		this.imagedFileName = imagedFileName;
	}
 
	public String getImagedContentType() {
		return imagedContentType;
	}
 
	public void setImagedContentType(String imagedContentType) {
		this.imagedContentType = imagedContentType;
	}
 
	public int getPublication() {
		return publication;
	}
 
	public void setPublication(int publication) {
		this.publication = publication;
	}
 
	@Override
	public String execute() throws Exception {
 
		//recuperation de la session
		HttpServletRequest request = ServletActionContext.getRequest();
		HttpSession session = request.getSession();
 
		Personnel personne = new Personnel();		
		if (personne.userIsLogged(session)){
 
			personne = (Personnel) session.getAttribute("personne");
 
			ServletContext context = ServletActionContext.getServletContext();
			String repertoireImageUtilisateur = context.getRealPath(repertoireImageUploadesParLesUtilisateurs);
 
			//copier le fichier dans le répertoire de l'application imagesUtilisateurs
			if (this.imageaFileName != null){
				File sauvegardeImage = new File(repertoireImageUtilisateur, this.imageaFileName);
				this.imagea.renameTo(sauvegardeImage);
			}
 
			//ajout d'une entite 
			// nomtype et description sont les noms des champs dans ajoutEntite.jsp
			if (this.nomtype != null || this.description != null){
				Entite entity = new Entite();
 
				//Tous les élement du dessous (this.nomtype) sont les noms des champs présente dans le formulaire
				Entite entityNew = new Entite(this.nomtype, this.description, this.dateDebut,
						this.dateFin, new Integer(this.entiteIdOrg), new Integer(this.entiteIdType), this.publication);
 
				int newGeneratedId = entity.getIdFromAnewEntity(entityNew);
				Image image = new Image();
				System.out.println("======================= ajout entite ok  ^^ : "+this.imagea);
				System.out.println("======================= ajout entite ok  ^^ : "+this.imageaFileName);
				if (this.imageaFileName != null && newGeneratedId != 0){
					System.out.println("======================= inserer les images dans la table image!! ");
					Image newImage_1 = new Image(newGeneratedId, this.imageaFileName, '1');
					image.insererUneImage(newImage_1);
				}
 
				System.out.println("======================= imagebFileName : "+this.imagebFileName);
				if (this.imagebFileName != null && newGeneratedId != 0){
					System.out.println("======================= inserer les images dans la table image!! ");
					Image newImage_2 = new Image(newGeneratedId, this.imagebFileName, '2');
					image.insererUneImage(newImage_2);
				}
 
				System.out.println("======================= imagecFileName : "+this.imagecFileName);
				if (this.imagecFileName != null && newGeneratedId != 0){
					System.out.println("======================= inserer les images dans la table image!! ");
					Image newImage_3 = new Image(newGeneratedId, this.imagecContentType, '3');
					image.insererUneImage(newImage_3);
				}
 
				System.out.println("======================= imagedFileName : "+this.imagedFileName);
				if (this.imagedFileName != null && newGeneratedId != 0){
					System.out.println("======================= inserer les images dans la table image!! ");
					Image newImage_4 = new Image(newGeneratedId, this.imagedFileName, '4');
					image.insererUneImage(newImage_4);
				}
 
				return Action.NONE;
			}
			return Action.INPUT;
 
		}else
			return Action.LOGIN;
 
	}
 
}
voici mon struts.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
 
<?xml version="1.0" encoding="UTF-8"?>
 
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
	"http://struts.apache.org/dtds/struts-2.01dtd">
 
<struts>
	<constant name="struts.enable.DynamicMethodInvocation" value="true" />
	<constant name="struts.devMode" value="true" />
	<constant name="struts.locale" value="fr_FR" />
	<constant name="struts.ui.theme" value="simple" />
	<constant name="struts.custom.i18n.resources" value="organisation" />
 
	<package name="frontoffice" extends="struts-default">
		<default-action-ref name="index" />
 
		<!-- Regles de navigation -->
 
		<action name="welcomePage">
			<result>frontoffice/welcomePage.jsp</result>
		</action>
	</package>
 
	<package name="backoffice" namespace="/backoffice" extends="struts-default">
 
		<!-- Regles de navigation -->
		<action name="login" class="action.backoffice.LoginAction">
	    	<interceptor-ref name="validationWorkflowStack"/>
	    	<result name="none" type="redirectAction">ajoutEntite</result>
	    	<result name="input">login.jsp</result>
	    </action>
 
	    <!--  GESTION DES ENTITE -->	
		<action name="ajoutEntite" class="action.backoffice.entite.AjoutEntiteAction">
			<interceptor-ref name="fileUpload">
				<param name="maximumSize">10240000000</param>
				<param name="allowedTypes">image/gif,image/jpeg,image/jpg,image/png</param>
			</interceptor-ref>
			<interceptor-ref name="validationWorkflowStack"/>
			<result name="none" type="redirectAction">listEntite</result>
			<result name="input">entite/ajoutEntite.jsp</result>
		</action>
 
		<action name="listEntite" class="action.backoffice.entite.ListEntiteAction">
			<result name="none">entite/listeEntite.jsp</result>
			<result name="login" type="redirectAction">login</result>
	    </action>
 
 
	     <!--  GESTION DES PERSONNES -->	
		<action name="ajoutPersonnel" class="action.backoffice.personnel.AjoutPersonnelAction">
			<result name="none" type="redirectAction">listPersonnel</result>
			<result name="input">personnel/ajoutPersonnel.jsp</result>
		</action>
 
		<action name="listPersonnel" class="action.backoffice.personnel.ListPersonnelAction">
			<result name="none">personnel/listePersonnel.jsp</result>
			<result name="login" type="redirectAction">login</result>
	    </action>
 
 
		<!--  GESTION DES FONCTION -->	
			<action name="ajoutFonction" class="action.backoffice.fonction.AjoutFonctionAction">
			<result name="none" type="redirectAction">listFonction</result>
			<result name="input">fonction/ajoutFonction.jsp</result>
		</action>
 
		<action name="listFonction" class="action.backoffice.fonction.ListFonctionAction">
			<result name="none">fonction/listeFonction.jsp</result>
			<result name="login" type="redirectAction">login</result>
	    </action>
 
 
	   		<!--  GESTION DES Type -->	
		<action name="ajoutType" class="action.backoffice.type.AjoutTypeAction">
			<result name="none" type="redirectAction">listType</result>
			<result name="input">type/ajoutType.jsp</result>
		</action>
 
		<action name="listType" class="action.backoffice.type.ListTypeAction">
			<result name="none">type/listeType.jsp</result>
			<result name="login" type="redirectAction">login</result>
	    </action>
 
	   <!--  GESTION DU MENU EN HAUT DE L'ECRAN -->	
	   <action name="MenuAjoutEntite">
			<result type="redirectAction">entite/ajoutEntite.jsp</result>
	   </action>
 
	   <action name="MenuAjoutPersonnel">
			<result type="redirectAction">personnel/ajoutPersonnel.jsp</result>
	   </action>
 
	   <action name="MenuAjoutFonction">
			<result type="redirectAction">fonction/ajoutFonction.jsp</result>
	   </action>
 
	   <action name="MenuListEntite">
			<result type="redirectAction">entite/listeEntite.jsp</result>
	   </action>
	   <action name="MenuListPersonnel">
			<result type="redirectAction">personnel/listePersonnel.jsp</result>
	   </action>
	    <action name="MenuListFonction">
			<result type="redirectAction">fonction/listeFonction.jsp</result>
	   </action>
 
 
	</package>
 
 
 
</struts>
En fait je ne passe pas par ma classe java quand j'upload plus d'une image.
Comment faire pour résoudre mon problème ?

Merci d'avance