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

JSF Java Discussion :

[PrimeFaces] <p:fileUpload> Récupération des noms des fichers à joindre


Sujet :

JSF Java

  1. #1
    Membre régulier
    Profil pro
    Chef de projet
    Inscrit en
    Mai 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Mai 2008
    Messages : 211
    Points : 115
    Points
    115
    Par défaut [PrimeFaces] <p:fileUpload> Récupération des noms des fichers à joindre
    Bonjour,

    j'utilise le compsant <p:fileUpload>(primefaces 5.0) et j'ai besoin de récupérer les noms des fichiers à joindre mais je ne dois pas utiliser le bouton:upload(j'ai ajouté du css pour le cacher) du composant du coup je peux pas utiliser l'action fileUploadListener
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <p:fileUpload   mode="advanced" value="#{}" fileLimit="3"  
                     invalidSizeMessage="taille document invalide"  sizeLimit="100000" fileLimitMessage="vous pouvez pas joindre plusque 3 documents" label="Joindre un fichier"/>
    y'a t-il un moyen de faire ça ?
    PS: j'ai essayé d'utiliser valueChangeListener mais ça marche pas. j'ai vu que c'est pas une PropertyKeys dans la classe FileUpload de primefaces

    Merci pour vos réponse.

  2. #2
    Membre éprouvé
    Avatar de Cafeinoman
    Homme Profil pro
    Couteau suisse d'une PME
    Inscrit en
    Octobre 2012
    Messages
    628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Couteau suisse d'une PME

    Informations forums :
    Inscription : Octobre 2012
    Messages : 628
    Points : 1 256
    Points
    1 256
    Par défaut
    La propriété auto ne suffit pas? Elle permet normalement au client d'effectuer un glisser-déposer dans le widget, lance l'upload dès que le fichier est dans le widget, en appelant le listener au passage... Pas de clic du tout...
    «Dieu ne joue pas aux dés.» - Albert Einstein. Et pan! 30 ans de retard dans la théorie quantique!
    «Tout n'est pas politique, mais la politique s'intéresse à tout.» - Nicolas Machiavel. Et surtout à ceux qui ne s'y intéressent pas.

  3. #3
    Membre régulier
    Profil pro
    Chef de projet
    Inscrit en
    Mai 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Mai 2008
    Messages : 211
    Points : 115
    Points
    115
    Par défaut
    Citation Envoyé par Cafeinoman Voir le message
    La propriété auto ne suffit pas? Elle permet normalement au client d'effectuer un glisser-déposer dans le widget, lance l'upload dès que le fichier est dans le widget, en appelant le listener au passage... Pas de clic du tout...
    Merci Cafeinoman pour votre réponse,
    le problème avec auto="true" que le fichier sera uploader automatiquement et donc j'aurais pas la liste de mes fichiers dans ma page.
    j'ai crée une liste dans laquelle je stocke le nom du fichier avec fileUploadListener mais le problème qu'avec chaque clique sur le bouton pour joindre les fichiers je récupère que le dernier élément ajouter.

  4. #4
    Membre régulier
    Profil pro
    Chef de projet
    Inscrit en
    Mai 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Mai 2008
    Messages : 211
    Points : 115
    Points
    115
    Par défaut
    c'est bon j'ai resolu le problème.

  5. #5
    Candidat au Club
    Inscrit en
    Décembre 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 3
    Points : 4
    Points
    4
    Par défaut upload multiple dans un formulaire JSF
    Bonsoir,

    Je viens de lire la discussion sur l'upload multiple avec primeface. Moi je suis également buté sur une problème du même genre qui m'empêche vraiment d'avancer. En fait dans un formulaire, je fait de l'uploade Multiple et je souhaiterai que c'est une fois actionné sur le boutton de soumission du formulaire que les fichiers soient chargé mais pour le moment rien ne marche. J'utilise le composant : <p:fileUpload comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <p:fileUpload value="#{courrierControllerBean.file}" mode="advanced" dragDropSupport="false"
                               multiple="true" update="messages" sizeLimit="1000000" fileLimit="3" allowTypes="/(\.|\/)(gif|jpe?g|png)$/" cancelLabel="Annuler"
                                                               label="Choisir" style="font-size: x-small" /> 
     
    					    <p:growl id="messages" showDetail="true" />
    le boutton de soumission du formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p:commandButton styleClass="btn btn-small btn-success" value="#{msg['button.add']}"  update=":tabCourrier, :growl" actionListener="#{courrierControllerBean.ajoutCourrier(fileUploadEvent)}" oncomplete="courrierAjout.hide()"  />
    le traitement dans la bean courrierControllerBean :
    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    		/**
                     * 
                     * @param event
                     * @return nothing
                     */
    	    public void handleFileUpload(FileUploadEvent fileUploadEvent) {
    	        FacesMessage message = new FacesMessage("Succesful", fileUploadEvent.getFile().getFileName() + " is uploaded.");
    	        FacesContext.getCurrentInstance().addMessage(null, message);
    	     // Do what you want with the file
    			try {
    				System.out.println("chemin du fichier uploadé : "+fileUploadEvent.getFile().getFileName());
    				copyFile(fileUploadEvent.getFile().getFileName(), fileUploadEvent.getFile()
    						.getInputstream());
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    	    }
     
    		public void copyFile(String fileName, InputStream in) {
    			try {
    				// write the inputStream to a FileOutputStream
    				OutputStream out = new FileOutputStream(new File("C:\\rep_omar_test_upload\\"
    						+ fileName));
    				int read = 0;
    				byte[] bytes = new byte[1024];
    				while ((read = in.read(bytes)) != -1) {
    					out.write(bytes, 0, read);
    				}
    				in.close();
    				out.flush();
    				out.close();
    				System.out.println("New file created!");
    			} catch (IOException e) {
    				System.out.println(e.getMessage());
    			}
    		}
     
    		/**
                     * L'ajout d'un courrier dans l bd
                     */
    	    public void ajoutCourrier(FileUploadEvent fileUploadEvent) {    
     
     
    		 try{
     
     
    			 this.handleFileUpload(fileUploadEvent);
     
    			 courrier.setDelate(false);
    			 //courrier.setConfidentiel(0);
    			// courrier.setCourdate(Date.valueOf("2015-04-15"));
    			 courrier.setCourdatemodif(Date.valueOf("2015-04-15"));
    			 courrier.setCourdatenreg(Date.valueOf("2015-04-15"));
    			 //courrier.setCourmots("test courmots");
    			 //courrier.setCourobjet("objet");
    			 //courrier.setCourobservation("observation");			 
    			 courrier.setPrioritesPrioid(prioritesRessourceService.load(1));
    			 courrier.setRefid(15042015);//doit être généré suivant une nomenclature
    			 courrier.setStatutsStatutid(statutsRessourceService.load(1));
    			 courrier.setTypescourriersTypecourid(typescourriersRessourceService.load(1));
     
    			 Map<String,Object> session = FacesContext.getCurrentInstance().getExternalContext().getSessionMap();
    		     User user =  (User) session.get(ISessionConstant.SS_USER); 
    			 courrier.setUserid(1);
     
    			 courrier.setEspaceCourrierIdEspaceCourrier(espaceCourrierRessourceService.load(2));
    			 courrier.setUserIdUser(userRessourceService.load(3));	
    			 System.out.println("le type de courrier :"+ typecourrierid);
     
     
    			 HttpServletRequest request=(HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
    		        //traitement des fichiers
    			// MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
    		    // MultipartFile fichier = multipartRequest.getFile("chemin");
    		    	//chemin complet du repertoire du projet déployé
    		     String defaultSystemDirFileUpload  = request.getSession().getServletContext().getRealPath("/");
    		     System.out.println("chemin complet du repertoire du projet déployé :"+ defaultSystemDirFileUpload);
     
    	           //Chemin du répetoire des fichier uploadé
    	         //String destinationDirFileUpload = defaultSystemDirFileUpload.concat(VariableGlobales.REPERTOIREDESPROJETSUPLOADES);
     
    		     System.out.println("chemin complet du repertoire du projet déployé :"+ typecourrierid);
     
    			 courriersRessourceService.save(courrier); 
    	    	this.init();
    	    	FacesContext context = FacesContext.getCurrentInstance();
    	    	 context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,"","Courrier ajoutée"));
    		 }catch(Exception e){
    			 e.printStackTrace();
    			 FacesContext context = FacesContext.getCurrentInstance();
    			 context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,"","Echec"));
     
    		 }
     
    	  }
    Merci de m'apporter votre aide car j'ai lu que cela a été résolu. Merci de me donner la proceduire.

  6. #6
    Candidat au Club
    Inscrit en
    Décembre 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    J'ajoute le message d'erreur de ma console en ajoutant que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    at cm.dita.controller.managed.bean.courrier.CourrierControllerBean.handleFileUpload(CourrierControllerBean.java:210)
    est la premiere instruction de la definition de :
    public void handleFileUpload(FileUploadEvent fileUploadEvent) {


    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    at cm.dita.controller.managed.bean.courrier.CourrierControllerBean.ajoutCourrier(CourrierControllerBean.java:250)
    correspond à l'instruction d'appel de : handleFileUpload(FileUploadEvent fileUploadEvent)
    dans la definition de public void ajoutCourrier(FileUploadEvent fileUploadEvent) {


    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    java.lang.NullPointerException
    	at cm.dita.controller.managed.bean.courrier.CourrierControllerBean.handleFileUpload(CourrierControllerBean.java:210)
    	at cm.dita.controller.managed.bean.courrier.CourrierControllerBean.ajoutCourrier(CourrierControllerBean.java:250)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:613)
    	at org.apache.el.parser.AstValue.invoke(AstValue.java:278)
    	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:273)
    	at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
    	at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:148)
    	at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
    	at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:769)
    	at javax.faces.component.UICommand.broadcast(UICommand.java:300)
    	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
    	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
    	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
    	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
    	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
    	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    	at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
    	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    	at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:146)
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    	at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    	at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:125)
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
    	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
    	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
    	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
    	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074)
    	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
    	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    	at java.lang.Thread.run(Thread.java:717)
    Merci!

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

Discussions similaires

  1. Récupération du nom des champs
    Par frogs dans le forum VBA Access
    Réponses: 6
    Dernier message: 07/08/2008, 15h49
  2. Récupération du noms des fichiers dans un répertoire
    Par tulipelover dans le forum Shell et commandes GNU
    Réponses: 12
    Dernier message: 03/08/2008, 21h47
  3. récupération des noms des variables POST
    Par taffMan dans le forum Langage
    Réponses: 2
    Dernier message: 19/02/2008, 21h13
  4. [SQL] récupération du nom des champs
    Par duplo dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/03/2006, 21h25
  5. Réponses: 4
    Dernier message: 02/02/2006, 11h24

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