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 :

[FileUpload] Problème avec FileUpload


Sujet :

Struts 1 Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2007
    Messages : 31
    Points : 24
    Points
    24
    Par défaut [FileUpload] Problème avec FileUpload
    Salut tout le monde,

    Je voulais ajouter l'option d'upload à mon application alors j'ai ajouter le tag <html:file> comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <html:form styleId="ajouterFile" action="/ajouterFile?method=upload" method="post">
    <fieldset>
    <legend>Ajouter un fichier</legend>
    <TABLE width="100%">
    	<TR>
    	<TD width="20%">Choisir un fichier</TD>
    	<TD width="5%">:</TD>
    	<TD width="50%"><html:file  styleId="file" property="file"   /></TD>
    	<TD width="15%"><html:submit  property="ajouterFile"  value="Ajouter" ></html:submit></TD>
    	</TR>	
    </TABLE>
    </fieldset>
    </html:form>
    et j'ai créé un formBean "UploadFileForm" associé comme cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public class UploadFileForm extends BaseForm {
        private String  file;
     
        public FormFile getFile() {
            return file;
        }
     
        public void setFile(FormFile file) {
            this.file = file;
        }
    }
    Puis j'ai créé mon action qui ne fait rien juste pour tester le passage de la valeur du <html:form> à mon FormBean :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public class UploadFileAction extends DispatchAction implements DBConstants {
        public ActionForward upload(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
            throws Exception {
     
    	return mapping.findForward("success");
        }
    quand j'execute tout cela il me sorte cette exception :
    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
    java.lang.IllegalArgumentException: Cannot invoke ma.gov.tax.simplis.view.forms.UploadFileForm.setFile - argument type mismatch
    	org.apache.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:1778)
    	org.apache.commons.beanutils.PropertyUtilsBean.setSimpleProperty(PropertyUtilsBean.java:1759)
    	org.apache.commons.beanutils.PropertyUtilsBean.setNestedProperty(PropertyUtilsBean.java:1648)
    	org.apache.commons.beanutils.PropertyUtilsBean.setProperty(PropertyUtilsBean.java:1677)
    	org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:1022)
    	org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:811)
    	org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:298)
    	org.apache.struts.util.RequestUtils.populate(RequestUtils.java:467)
    	org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:818)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:194)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    	org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
    	ma.gov.tax.simplis.view.filters.forms.FormsFilter.doFilter(FormsFilter.java:72)
    	ma.gov.tax.simplis.view.filters.security.AuthorizationFilter.doFilter(AuthorizationFilter.java:73)
    j'ai regardé les FAQ les tuto et je n'ai rien trouver de bizar dans mon code et je n'arrive pas à avancer alors je demande votre aide pour résoudre ce prob Merci d'avance

  2. #2
    Membre habitué Avatar de badoress
    Inscrit en
    Mars 2007
    Messages
    169
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2007
    Messages : 169
    Points : 159
    Points
    159
    Par défaut
    bonjour,
    ajoute enctype="multipart/form-data" dans ton <html:form> comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <html:form styleId="ajouterFile" action="/ajouterFile?method=upload" method="post" enctype="multipart/form-data" >
    <fieldset>
    <legend>Ajouter un fichier</legend> 
    <TABLE width="100%"> ....
    bonne chance

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2007
    Messages : 31
    Points : 24
    Points
    24
    Par défaut
    Merci cher ami pour ta réponse.

    ça marche.

    Une autre chose c'est que j'ai implémenter un peu de code pour le traitement de cet 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
    27
    28
    DiskFileItemFactory factory = new DiskFileItemFactory();
            // maximum size that will be stored in memory
            factory.setSizeThreshold(4096);
            // the location for saving data that is larger than getSizeThreshold()
            factory.setRepository(new File("/tmp"));
     
            ServletFileUpload upload = new ServletFileUpload(factory);
            // maximum size before a FileUploadException will be thrown
            upload.setSizeMax(1000000);
     
            List listFiles = new ArrayList();
     
            UploadFileForm uploadForm = (UploadFileForm) form;
     
            if (uploadForm.getFiles() == null) {
                listFiles = new ArrayList();
                uploadForm.setFiles(listFiles);
            }
            uploadForm.getFiles().add(uploadForm.getFile());
           List fileItems = upload.parseRequest(request);
     
            Iterator i = fileItems.iterator();
            String comment = ((FileItem)i.next()).getString();
            FileItem fi = (FileItem)i.next();
            // filename on the client
                  String fileName = fi.getName();
            // write the file
                 fi.write(new File("/www/uploads/", fileName));
    mais le fileItems est vide aprés le upload.parseRequest(request) et je ne sais pas pourquoi

Discussions similaires

  1. [RichFaces] Problème avec FileUpload
    Par AllanRidley dans le forum JSF
    Réponses: 6
    Dernier message: 19/07/2011, 16h13
  2. Problème avec fileupload de JSF
    Par bousyass dans le forum JSF
    Réponses: 2
    Dernier message: 20/06/2010, 12h48
  3. [ASP.NET][C#] Problème avec Fileupload.Havefile
    Par patricklinden dans le forum ASP.NET
    Réponses: 12
    Dernier message: 21/07/2009, 09h42
  4. problème avec struts1.1 et fileupload
    Par lolita2008 dans le forum Struts 1
    Réponses: 1
    Dernier message: 21/05/2008, 18h46
  5. Problème avec Tomahawk fileUpload
    Par akademiks dans le forum JSF
    Réponses: 1
    Dernier message: 05/03/2007, 12h11

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