Bonjour,

Je suis en train de mettre en place deux jsp.

Une jsp permettant de mettre à jour des données et une autre de les consulter.

Dans ma fiche jsp de mise à jour, j'ai créé des champs avec des input dont les valeurs seront stockées dans une base de données. A partir de cette fiche de mise à jour, je veux pouvoir envoyer deux types de fichiers sur un serveur.
- plan masse
- vue perspective

Dans ma base de données, j'ai deux champs( plan_masse et vue_perspective) me permettant de stocker le nom des fichiers. A partir de cela, j'ai ma fiche de consultation qui affiche les fichiers à partir d'un lien entre ma jsp et mes champs plan_masse et vue_perspective.

Pour effectuer la mise à jour des liens, j'ai les contraintes suivantes:
-Si j'ai un plan masse et une vue perspective, je peux mettre à jour mes liens et le reste de mes données.

-Si j'ai un plan masse mais pas de vue perspective, je ne mets à jour que le lien du plan masse et le reste de mes données

-Si je n'ai pas de plan masse, mais que j'ai une vue perspective, je ne peux mettre à jour que ma vue perspective et le reste de mes données

-Si je n'ai ni l'un ni l'autre, je ne mets pas à jour mes liens mais juste le reste de mes données

C'est ce que j'ai voulu retranscrire ci-dessous :

Code jsp : 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
 
<sql:setDataSource dataSource="jdbc/Database" />
 
 
<c:set scope="request" var="origFilename" value="" />
<c:set scope="request" var="storedFilename" value="" />
 
<%
        String origFilename = null;
        File storageDIR =  new File("D:/toto/plan_masse");
        boolean isMultipart = ServletFileUpload.isMultipartContent(request);
        if (isMultipart) {
                FileItemFactory factory = new DiskFileItemFactory();
                ServletFileUpload upload = new ServletFileUpload(factory);
                List items = null;
                try {
                        items = upload.parseRequest(request);
                } catch (FileUploadException e) {
                        e.printStackTrace();
                }
                Iterator itr = items.iterator();
                while (itr.hasNext()) {
                        FileItem item = (FileItem) itr.next();
                        if (item.isFormField()) {
                                request.setAttribute(item.getFieldName(), item.getString());
                        } else {
                                origFilename = item.getName();
                                request.setAttribute("PLAN_MASSE", origFilename);
                                
                                // maybe garder que la fin....
                                
                                String storedFilename = request.getAttribute("NOM_PROGRAMME")+"_"+origFilename;
                                request.setAttribute("storedFilename", storedFilename);
                                
                                File savedFile = new File(storageDIR, storedFilename);
                                
                                item.write(savedFile);
                        }
                }
        }
%>
 
<c:set scope="request" var="origFilename2" value="" />
<c:set scope="request" var="storedFilename2" value="" />
 
<%
        String origFilename2 = null;
        File storageDIR1 =  new File("D:/toto/vue_perspective");
        boolean isMultipart1 = ServletFileUpload.isMultipartContent(request);
        if (isMultipart1) {
                FileItemFactory factory = new DiskFileItemFactory();
                ServletFileUpload upload = new ServletFileUpload(factory);
                List items = null;
                try {
                        items = upload.parseRequest(request);
                } catch (FileUploadException e) {
                        e.printStackTrace();
                }
                Iterator itr = items.iterator();
                while (itr.hasNext()) {
                        FileItem item = (FileItem) itr.next();
                        if (item.isFormField()) {
                                request.setAttribute(item.getFieldName(), item.getString());
                        } else {
                                origFilename2 = item.getName();
                                request.setAttribute("VUE_PERSPECTIVE", origFilename2);
                                
                                // maybe garder que la fin....
                                
                                String storedFilename2 = request.getAttribute("NOM_PROGRAMME")+"_"+origFilename2;
                                request.setAttribute("storedFilename2", storedFilename2);
                                
                                File savedFile = new File(storageDIR1, storedFilename2);
                                
                                item.write(savedFile);
                        }
                }
        }
%>
 
 
 
<%
if((origFilename.length() > 0) && (origFilename2.length() > 0))
{
%>
<sql:update var="result" scope="request" sql="UPDATE Foncier_prospect_hab_2026 SET NOM_PROGRAMME=?, TYP_URBA=?, SOURCES=?, COMMUNE=?, ZONAGE=?, NOTES=?, CODE_PROJET=?, NOM_SECTEUR=?, EST_LOGT=?, T1_2012_2014_ACC=?, T1_2012_2014_LLS=?, T2_2015_2020_ACC=?, T2_2015_2020_LLS=?, T3_2021_2026_ACC=?, T3_2021_2026_LLS=?, SURFACE_HECTARE=?, NB_LOG_HECTARE=?, PLAN_MASSE=?, VUE_PERSPECTIVE=?, WHERE objectid = ?">
	<sql:param>${NOM_PROGRAMME}</sql:param>
	<sql:param>${ENT_TYP_URBA}</sql:param>
	<sql:param>${ENT_SOURCES}</sql:param>
	<sql:param>${ENT_COMMUNE}</sql:param>
	<sql:param>${ZONAGE}</sql:param>
	<sql:param>${NOTES}</sql:param>	
	<sql:param>${CODE_PROJET}</sql:param>
	<sql:param>${NOM_SECTEUR}</sql:param>
	<sql:param>${EST_LOGT}</sql:param>
	<sql:param>${T1_2012_2014_ACC}</sql:param>
	<sql:param>${T1_2012_2014_LLS}</sql:param>
	<sql:param>${T2_2015_2020_ACC}</sql:param>
	<sql:param>${T2_2015_2020_LLS}</sql:param>
	<sql:param>${T3_2021_2026_ACC}</sql:param>
	<sql:param>${T3_2021_2026_LLS}</sql:param>
	<sql:param>${SURFACE_HECTARE}</sql:param>
	<sql:param>${NB_LOG_HECTARE}</sql:param>
	<sql:param>${storedFilename}</sql:param>
	<sql:param>${storedFilename2}</sql:param>
	<sql:param>${objectid}</sql:param>
</sql:update>
<%
}
else if ((origFilename.length() > 0) && (origFilename2.length() == 0))
{
%>
<sql:update var="result" scope="request" sql="UPDATE Foncier_prospect_hab_2026 SET NOM_PROGRAMME=?, TYP_URBA=?, SOURCES=?, COMMUNE=?, ZONAGE=?, NOTES=?, CODE_PROJET=?, NOM_SECTEUR=?, EST_LOGT=?, T1_2012_2014_ACC=?, T1_2012_2014_LLS=?, T2_2015_2020_ACC=?, T2_2015_2020_LLS=?, T3_2021_2026_ACC=?, T3_2021_2026_LLS=?, SURFACE_HECTARE=?, NB_LOG_HECTARE=?, PLAN_MASSE=? WHERE objectid = ?">
	<sql:param>${NOM_PROGRAMME}</sql:param>
	<sql:param>${ENT_TYP_URBA}</sql:param>
	<sql:param>${ENT_SOURCES}</sql:param>
	<sql:param>${ENT_COMMUNE}</sql:param>
	<sql:param>${ZONAGE}</sql:param>
	<sql:param>${NOTES}</sql:param>	
	<sql:param>${CODE_PROJET}</sql:param>
	<sql:param>${NOM_SECTEUR}</sql:param>
	<sql:param>${EST_LOGT}</sql:param>
	<sql:param>${T1_2012_2014_ACC}</sql:param>
	<sql:param>${T1_2012_2014_LLS}</sql:param>
	<sql:param>${T2_2015_2020_ACC}</sql:param>
	<sql:param>${T2_2015_2020_LLS}</sql:param>
	<sql:param>${T3_2021_2026_ACC}</sql:param>
	<sql:param>${T3_2021_2026_LLS}</sql:param>
	<sql:param>${SURFACE_HECTARE}</sql:param>
	<sql:param>${NB_LOG_HECTARE}</sql:param>
	<sql:param>${storedFilename}</sql:param>
	<sql:param>${objectid}</sql:param>
</sql:update>
 
<%
}
else if ((origFilename.length() == 0) && (origFilename2.length() > 0))
{
%>
<sql:update var="result" scope="request" sql="UPDATE Foncier_prospect_hab_2026 SET NOM_PROGRAMME=?, TYP_URBA=?, SOURCES=?, COMMUNE=?, ZONAGE=?, NOTES=?, CODE_PROJET=?, NOM_SECTEUR=?, EST_LOGT=?, T1_2012_2014_ACC=?, T1_2012_2014_LLS=?, T2_2015_2020_ACC=?, T2_2015_2020_LLS=?, T3_2021_2026_ACC=?, T3_2021_2026_LLS=?, SURFACE_HECTARE=?, NB_LOG_HECTARE=?, VUE_PERSPECTIVE=? WHERE objectid = ?">
	<sql:param>${NOM_PROGRAMME}</sql:param>
	<sql:param>${ENT_TYP_URBA}</sql:param>
	<sql:param>${ENT_SOURCES}</sql:param>
	<sql:param>${ENT_COMMUNE}</sql:param>
	<sql:param>${ZONAGE}</sql:param>
	<sql:param>${NOTES}</sql:param>	
	<sql:param>${CODE_PROJET}</sql:param>
	<sql:param>${NOM_SECTEUR}</sql:param>
	<sql:param>${EST_LOGT}</sql:param>
	<sql:param>${T1_2012_2014_ACC}</sql:param>
	<sql:param>${T1_2012_2014_LLS}</sql:param>
	<sql:param>${T2_2015_2020_ACC}</sql:param>
	<sql:param>${T2_2015_2020_LLS}</sql:param>
	<sql:param>${T3_2021_2026_ACC}</sql:param>
	<sql:param>${T3_2021_2026_LLS}</sql:param>
	<sql:param>${SURFACE_HECTARE}</sql:param>
	<sql:param>${NB_LOG_HECTARE}</sql:param>
	<sql:param>${storedFilename2}</sql:param>
	<sql:param>${objectid}</sql:param>
</sql:update>
 
<%
}
else 
{
%>
<sql:update var="result" scope="request" sql="UPDATE Foncier_prospect_hab_2026 SET NOM_PROGRAMME=?, TYP_URBA=?, SOURCES=?, COMMUNE=?, ZONAGE=?, NOTES=?, CODE_PROJET=?, NOM_SECTEUR=?, EST_LOGT=?, T1_2012_2014_ACC=?, T1_2012_2014_LLS=?, T2_2015_2020_ACC=?, T2_2015_2020_LLS=?, T3_2021_2026_ACC=?, T3_2021_2026_LLS=?, SURFACE_HECTARE=?, NB_LOG_HECTARE=? WHERE objectid = ?">
	<sql:param>${NOM_PROGRAMME}</sql:param>
	<sql:param>${ENT_TYP_URBA}</sql:param>
	<sql:param>${ENT_SOURCES}</sql:param>
	<sql:param>${ENT_COMMUNE}</sql:param>
	<sql:param>${ZONAGE}</sql:param>
	<sql:param>${NOTES}</sql:param>	
	<sql:param>${CODE_PROJET}</sql:param>
	<sql:param>${NOM_SECTEUR}</sql:param>
	<sql:param>${EST_LOGT}</sql:param>
	<sql:param>${T1_2012_2014_ACC}</sql:param>
	<sql:param>${T1_2012_2014_LLS}</sql:param>
	<sql:param>${T2_2015_2020_ACC}</sql:param>
	<sql:param>${T2_2015_2020_LLS}</sql:param>
	<sql:param>${T3_2021_2026_ACC}</sql:param>
	<sql:param>${T3_2021_2026_LLS}</sql:param>
	<sql:param>${SURFACE_HECTARE}</sql:param>
	<sql:param>${NB_LOG_HECTARE}</sql:param>
	<sql:param>${objectid}</sql:param>
</sql:update>

Mais lorsque je veux mettre à jour les liens, le message suivant s'affiche:

An exception occurred processing JSP en m'indiquant selon le type de fichier envoyé les lignes suivantes:
84
111
138

J'ai aussi fait des fiches pour envoyer un seul fichier à partir d'une jsp et ça marche, le problème vient quand je veux en envoyer 2.

Pourriez vous m'indiquez l'erreur que j'ai pu faire dans mon code.

Je vous remercie,

cordialement,