-
Upload de fichier
Bonsoir à tous ceux qui passent par ici ! :)
Après avoir pas mal fouillé sur le net, je reste toujours bloqué : je dois réaliser un portlet qui, entre autre, permet à un utilisateur d'envoyer un fichier sur le serveur, par l'intermédiaire donc d'un formulaire type "multipart" (le classique...). Le problème est que je n'arrive pas à récupérer les paramètres d'un formulaire de ce type, enfin je suppose.
Actuellement, ma portlet contient l'implémentation de la méthode doView(), qui me permet d'afficher la page jsp que je souhaite, ce qu'elle fait très bien. Il me semble même qu'elle traite également les formulaires classiques (un petit message d'erreur est apparu, mais l'action a été faite). Il me faut donc maintenant traiter les formulaire multicontent. J'utilise pour cela la librairie FileUpload d'Apache, qui possède des méthodes permettant de simplifier, comme son nom l'indique, l'upload de fichier.
Les méthodes de cette librairie demandent comme paramètres des objets de type ActionRequest. Or, doView ne prend que des RenderRequest. J'ai donc dérivé au fil des recherches internet vers la méthode processAction(), qui elle reçoit un objet ActionRequest. Apparemment elle devrait être appelée avant un doView(), mais dans les faits ce n'est pas le cas.
D'où peut venir le problème ? (configuration, mauvaise méthode...)
Comment récupérer les paramètres d'un formulaire de type multipart?
Merci d'avance !
-
Toujours pas trouvé, je commence à douter que ça soit possible. Je pense que la seule solution est de passer par la méthode processAction() qui est la seule qui a les "bons" paramètres pour pouvoir utiliser les méthodes de common-fileupload de Apache.
Donc je réitère ma demande : si quelqu'un a réussi à créer un portlet qui permette d'uploader un fichier, je suis plus que preneur. :?
J'ai commencé à explorer les pistes des fichiers de configuration (entre autre un <mime-type> dans le fichier portlet.xml), mais je reste sceptique puisque ma méthode processAction() n'est toujours pas appelée.
(À l'aide :cry: )
-
Il suffisait de spécifier comme URL de retour une url qui était créée par createActionUrl() et non createRenderUrl(). Du coup, il appelle bien processAction(). C'était évidemment tout bête, mais je n'ai pas soupconné que ça puisse venir de là...
Résolu, donc (pfiioouuuu).