Bonjour,
Après de nombreuses recherches sur le net, je n'ai pas trouvé d'infos concernant l'upload de fichiers trop volumineux.
Je fais dans un formulaire un upload de fichiers.
Tout fonctionne si la taille du fichier sélectionné est petite, ou si l'utilisateur n'en sélectionne pas (dans ce cas le FormFile est quand même instancié mais getFileName() renvoie null);
Dans ce même formulaire je définis d'autres properties.
Si mon fichier est trop volumineux, dans mon ActionForm, je fais un test sur le FormFile : s'il est null, il n'a pas été uploader car trop gros.
Le problème, c'est que les autres properties ne sont pas transmises non plus.
Comment faire pour les récupérer ?
Dans tous les cas, l'utilisateur est redirigé sur une page qui affiche des données avec les eventuels messages d'erreur en haut de la page.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 modification.jsp: <html:form action="/rxhl/equipement/UploadAction.do?method=initialiser" enctype="multipart/form-data" method="post" <html:hidden name="typeequipement" property="typeEquipementId" /> <html:hidden name="statut" property="id" /> <html:hidden name="equipement" property="objRefIdr"/> <html:file property="file" size="40"/></td> input type="button" class="button" onclick="javascript:submit();" value="<bean:message bundle="rxhl" key="rxhl.bouton.upload" locale="locale" />"/> </html:form>
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 dans MonActionForm, action déclenchée : public ActionForward initialiser(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { ActionMessages messages = new ActionMessages(); AjoutFichierEquipementForm afe = (AjoutFichierEquipementForm)form; afe.setAction("enregistrer"); ModificationEquipementForm formModif = new ModificationEquipementForm(); formModif.setTypeEquipementId(afe.getTypeEquipementId); // afe.getTypeEquipementId est null si le FormFile est null messages = form.validate( mapping, request ); form=formModif; if ( messages != null && !messages.isEmpty() ) { saveErrors(request, messages); } // code d'enregistrement que j'ai supprimé pour plus de lisibilité return mapping.findForward("Enregistrer");
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 struts-config.xml : <action path="/rxhl/equipement/UploadAction" type="com.rte.rxhl.action.equipement.UploadAction" name="ajoutFichierEquipementForm" parameter="method" scope="request" validate="false"> <forward name="Enregistrer" path="/rxhl/equipement/ModifierAction.do?method=initialiser" /> </action>
Partager