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

Spring Web Java Discussion :

Multi upload Ajax et Spring MVC


Sujet :

Spring Web Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    118
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2005
    Messages : 118
    Par défaut Multi upload Ajax et Spring MVC
    Bonjour,

    Je voudrais faire du multi upload avec une requete ajax (prototype) et Spring MVC.

    Voici mon code :

    Du côté de la JSP :

    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
     
    function ajaxRequest() { 
     
    	  ...
     
    	 if (formValide == true)
    	  {
     
    		  $('formulaire').request({
    			  method: 'post',
    			  enctype: 'multipart/form-data',
    			 	onCreate: function(response) {
    			 		startLoading();
    			 	},
    			    onSuccess: function(response) {
                                      ...
                                     stopLoading();
    			    },
    			    onFailure: function(response) {alert("il y eu un probleme");}
    			  }); 
     
    	 	return false;
    	  }
    	  else
    	  {
    	  	return false;
    	  }
     }
    La fonction startLoading lance une wait bar.
    La fonction ajaxRequest est appelée lors du onsubmit du formulaire.

    Du côté de la classe Java :

    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
     
    ...	    
    MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
            final Map<String, MultipartFile> files = multiRequest.getFileMap();
     
            mLog.debug("no of files:"+files.size());
     
            try {
     
            if (files == null) {
            	mLog.debug("no file was sent");
            }
            else{
                Iterator<MultipartFile> fileIterator=files.values().iterator();
                MultipartFile file;
                while(fileIterator.hasNext()) {
            	    File saveFile = new File(session.getServletContext().getRealPath("/")
         				   +"uploadedFiles/"));
         	    saveFile.mkdirs();
         	   file =(MultipartFile)fileIterator.next();
         	    File destination = new File(saveFile+ "/" + file.getOriginalFilename());
         	    if(destination.createNewFile()) {
                    mLog.debug("file name:"+file.getOriginalFilename());
                    file.transferTo(destination);
                    //make an entry if the transfer succeeds
                }
         	    }
     
            }
            } catch (Exception e) {
    			e.printStackTrace();
    		}
    Et quand je soumets mon formulaire j'ai cette erreur :

    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
     
    java.lang.ClassCastException: org.apache.catalina.connector.RequestFacade cannot be cast to org.springframework.web.multipart.MultipartHttpServletRequest
    	at com.capgemini.CGDataSync.web.resources.JSPChallenge.soumissionFormulaire(JSPChallenge.java:175)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    	at java.lang.reflect.Method.invoke(Method.java:597)
    	at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
    	at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:426)
    	at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414)
    	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
    	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
    	at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)
    	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:277)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
    	at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
    	at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
    	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226)
    	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
    	at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
    	at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
    	at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
    	at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
    	at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
    	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
    	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
    	at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
    	at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
    	at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
    	at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
    	at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
    	at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
    	at java.lang.Thread.run(Thread.java:619)
    Je ne sais pas comment résoudre ce soucis.

  2. #2
    Membre très actif
    Profil pro
    Inscrit en
    Février 2010
    Messages
    766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 766
    Par défaut
    Bonjour,

    Oui c'est pas magique le Cast, essai avec la classe mere des deux : HttpServletRequest.

    Et reconstruit ta map de fichier.

    bonne chance,

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    118
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2005
    Messages : 118
    Par défaut
    Peux-tu être plus explicite ?

    merci

  4. #4
    Membre très actif
    Profil pro
    Inscrit en
    Février 2010
    Messages
    766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 766
    Par défaut
    C'est pourtant simple, l'exception dit : request est un RequestFacade, tu essais de le caster en MultipartHttpServletRequest. Ca ne marche pas, même si la classe mère est commune.

Discussions similaires

  1. Problème Ajax et Spring mvc
    Par Roune dans le forum Spring
    Réponses: 1
    Dernier message: 29/05/2015, 13h41
  2. [AJAX] Multi upload Ajax sans Jquery, possible ou pas
    Par guillaumeIOB dans le forum AJAX
    Réponses: 0
    Dernier message: 02/05/2013, 14h22
  3. [AJAX] Appel AJAX dans Spring mvc 3 en utilisant Datatable et Dialog
    Par skudersky dans le forum jQuery
    Réponses: 0
    Dernier message: 27/02/2013, 18h13
  4. [MVC] Ajax,Jquery Spring MVC
    Par patricx dans le forum Spring Web
    Réponses: 0
    Dernier message: 02/04/2012, 16h14
  5. [AJAX] Multi upload Ajax
    Par popovitch130 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 22/05/2008, 18h29

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