IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Struts 1 Java Discussion :

Upload d'un fichier


Sujet :

Struts 1 Java

  1. #1
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 242
    Par défaut Upload d'un fichier
    Bonjour,

    Voici le ActionForm tout simple qui sert à stocker un fichier uploadé :

    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
    package pages.engin.importer;
    
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.upload.FormFile;
    
    public class ImporterForm extends ActionForm
    {
        private static final long serialVersionUID = 1L;
        
        // objet contenant le fichier uploadé
        private FormFile fichier;
    
        public FormFile getFichier()
        {
            return fichier;
        }
    
        public void setFichier(FormFile fichier)
        {
            this.fichier = fichier;
        }
    
        
        
    }
    ... voici le JSP correspondant :

    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
    <%@ page language="java"%>
    <%@ taglib uri="/tags/struts-logic" prefix="logic"%>
    <%@ taglib uri="/tags/struts-html-el" prefix="html-el"%>
    <%@ taglib uri="/tags/struts-bean-el" prefix="bean-el"%>
    <%@ taglib uri="/tags/struts-nested" prefix="nested"%>
    
    <%@ taglib uri="/tags/jstl-c" prefix="c"%>
    <html-el:xhtml />
    
    <%@ page import="global.Global"%>
    
    <h1><bean-el:message key="Importer-engins" /></h1>
    
    <p class="messageImportant"><html-el:errors
        property="ATT_ERREUR_GLOBAL" /></p>
    
    <html-el:form action="/enginAfficherImporter.do">
    
        <p class="texteCentre"><strong> <bean-el:message
            key="Indiquer-nom-sauvegarde" />&nbsp;:&nbsp;</strong> 
        <br />
        <br />
        </p>
    
            <table class="positionnerCentre">
                <tr>
                <td colspan="3"><span class="messageImportant"> <html-el:errors
                    property="ATT_ERREUR" /> </span></td>
            </tr>
    
            <tr>    
                <td>
                <html-el:file property="fichier"/>
                </td>
            </tr>
                
            <tr>
                <td>
                <br />
                <input type="image" 
                    src="<%=Global.WEB_REP_STYLE_IMAGES + Global.WEB_SEPARATOR%>checkin.png" 
                    class="bouton positionnerDroite"
                    alt="<bean:message key='Valider'/>"
                    title="<bean:message key='Valider'/>" />
                </td>
            </tr>    
            
            </table>
    
    </html-el:form>
    ... voici la définition dans le fichier de configuration :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
            <action
                path="/enginAfficherImporterSelectionner"
                type="pages.engin.importer.AfficherSelectionnerAction"
                name="EnginImporterForm"
                scope="request"
                validate="false">
                <forward name="enginImporterSelectionner" path="engin-importer-selectionner"/>
                <forward name="erreur" path="erreur-administrateur"/>
            </action>
    
    ... avec ...
    
    <form-bean name="EnginImporterForm" type="pages.engin.importer.ImporterForm"/>
    ... et la belle exception lors de la validation du formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Method invocation failed.
    java.lang.IllegalArgumentException: argument type mismatch
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    ...
    
    "Servlet.service()" pour la servlet action a généré une exception
    java.lang.IllegalArgumentException: Cannot invoke pages.engin.importer.ImporterForm.setFichier - argument type mismatch
        at org.apache.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:1778)
    ...
    Pourtant j'ai déjà fait ce genre de fonction et dans une autre partie de mon programme cela fonctionne.

    Alors pourquoi cette erreur ?

    Merci.

  2. #2
    Membre émérite
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Par défaut
    Bonjour,

    d'après le lien

    dans le tag <html-el:form> il faut mettre enctype="multipart/form-data" pour faire de l'upload.

  3. #3
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 242
    Par défaut
    Citation Envoyé par fnobb Voir le message
    Bonjour,

    d'après le lien

    dans le tag <html-el:form> il faut mettre enctype="multipart/form-data" pour faire de l'upload.
    Merci beaucoup fnobb.

    En effet c'est la réponse : je cherchais la solution dans la balise bean-el:file alors que le problème venait de la balise form.

    Merci encore.

  4. #4
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 29
    Par défaut
    Salut Mister Nono,
    Je suis actuellement bloqué sur l'upload d'un fichier.
    Est ce que tu pourrais me montrer le bout de code qui effectue l'opération.
    Merci

  5. #5
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 242
    Par défaut
    Citation Envoyé par fedexpress Voir le message
    Salut Mister Nono,
    Je suis actuellement bloqué sur l'upload d'un fichier.
    Est ce que tu pourrais me montrer le bout de code qui effectue l'opération.
    Merci
    Tout est dans ce post.

  6. #6
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 29
    Par défaut

    Au fait, pour mieux expliquer mon problème, je ne sais pas si tu as déjà rencontré ça avant, mais dès que je mets le type FileForm dans mon getter et mon setter, aucune action du fichier struts-config ne passe

  7. #7
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 242
    Par défaut
    Citation Envoyé par fedexpress Voir le message

    Au fait, pour mieux expliquer mon problème, je ne sais pas si tu as déjà rencontré ça avant, mais dès que je mets le type FileForm dans mon getter et mon setter, aucune action du fichier struts-config ne passe
    Je pense que le mieux serait que tu ouvres un nouveau post et que tu donnes un exemple de ton code source.

    A+ sur un autre post.

  8. #8
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 29
    Par défaut
    OK, merci

  9. #9
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Citation Envoyé par Mister Nono Voir le message
    Je pense que le mieux serait que tu ouvres un nouveau post et que tu donnes un exemple de ton code source.

    A+ sur un autre post.
    fedexpress a déjà ouvert une discussion à ce sujet ici.

  10. #10
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 242
    Par défaut
    Citation Envoyé par c_nvy Voir le message
    fedexpress a déjà ouvert une discussion à ce sujet ici.
    Mais tu es partout à la fois.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Upload] Droits des fichiers
    Par flexx dans le forum Langage
    Réponses: 7
    Dernier message: 01/12/2005, 19h14
  2. [Upload] telecherger un fichier
    Par fraizas dans le forum Langage
    Réponses: 2
    Dernier message: 17/11/2005, 16h35
  3. Réponses: 6
    Dernier message: 06/10/2005, 20h54
  4. [Servlet][Tomcat] Upload d'un fichier sur le serveur
    Par gandalf_le_blanc dans le forum Tomcat et TomEE
    Réponses: 7
    Dernier message: 19/04/2004, 13h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo