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

GWT et Vaadin Java Discussion :

Détection de la fin d'un upload


Sujet :

GWT et Vaadin Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    PONSOLLE
    Invité(e)
    Par défaut Détection de la fin d'un upload
    Bonjour,

    Voici mon problème : je souhaite uploader un fichier (par exemple une image) et détecter la fin de cet upload afin de rafraichir automatiquement ma page et de voir s'afficher l'image "uploadée".
    Pour cela, j'utilise un formulaire (FormPanel) qui appelle une servlet. Cette servlet renvoit une réponse de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public void service(HttpServletRequest request, HttpServletResponse response) {
    ...........
      response.setContentType("text/html");
      PrintWriter out = new PrintWriter(response.getOutputStream());
      out.println("<html>\n<body>\n<h1>Hello world</h1>");
      out.println("</body>\n</html>");
      out.close();
    }
    Ainsi, sur mon formulaire j'ajoute un gestionnaire d'évènement :
    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
    FormPanel form = new FormPanel();
    form.setAction("UploadServlet");
    form.setEncoding(FormPanel.ENCODING_MULTIPART);
    form.setMethod(FormPanel.METHOD_POST);
    Button validateButton = new Button("Valider");
    validateButton.addClickHandler(new ClickHandler() {
      @Override
      public void onClick(ClickEvent event) {
        form.submit();				    
      }
    });.
    .....
    form.addSubmitHandler(new SubmitHandler() {
      @Override
      public void onSubmit(SubmitEvent event) {
        if (photoChooser.getFilename().length() == 0) {
           Window.alert("Vous n'avez pas selectionner de fichier");    		     
        }	    	
       }
    });
    form.addSubmitCompleteHandler(new SubmitCompleteHandler() {
      public void onSubmitComplete(SubmitCompleteEvent event) {
        Window.alert(event.getResults());
      }
    });
    Donc je devrai passer dans la méthode onSubmitComplete lorsque la servlet a terminé son boulot et donc afficher un petit hello world. Or ce n'est pas le cas.
    Avec le browser de GWT, je passe bien dans onSubmit mais pas dans onSubmitComplete.
    Lorsque je compile mon code et que j'utilise Firefox, je ne passe ni dans onSubmit ni dans onSubmitComplete

    J'ai fait pas mal de recherches sur ce sujet mais pour l'instant je n'ai pas trouver de réponses.
    Pouvez-vous m'aider? Merci
    Dernière modification par MrDuChnok ; 04/11/2010 à 11h30. Motif: balise code

  2. #2
    Membre confirmé

    Inscrit en
    Juin 2003
    Messages
    229
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2003
    Messages : 229
    Par défaut
    Bonjour,

    En effet, cela semble assez curieux ; pourrais-tu essayer avec la syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    form.addFormHandler(new FormHandler() {
    			public void onSubmit(FormSubmitEvent event) {
    				if (photoChooser.getFilename().length() == 0) {
                                      Window.alert("Vous n'avez pas selectionner de fichier");
                                    } 
     
    			}
     
    			public void onSubmitComplete(FormSubmitCompleteEvent event) {
    				Window.alert(event.getResults());
                            });
    A priori, ça ne va rien changer, mais cette syntaxe fonctionne très bien chez moi, donc dans le doute ...

  3. #3
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2008
    Messages : 36
    Par défaut onSubmitComplete never fired
    Salut !

    je suis exactement dans la même galère, sauf que je peux apporter a ces poste qui datent d'une année a priori est que la méthode que proposait pedouille est actuellement dépréciée, aussi que les deux approches fonctionnent correctement sous touts les navigateurs sauf sur IE8.
    ma recherche sur le forum GWT n'a pas était très fructueuse ..
    Est ce que quelqu'un aurait une idée sur la question ?

    merci

  4. #4
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2008
    Messages : 36
    Par défaut résolu
    RE,

    finalement je mettais en place deux formulaire et je faisais appel à submit() que pour un seul Form ( j'en avais crée deux pour avoir la même structure )
    chose qui déplait à IE8 apparemment, car au retour du do_post() IE s'attend à la validation du second formulaire
    et ne réponds au client qu'une fois la condition : " tout les formulaires détectés soient validés" => soit validée
    ce qui déclenchera, enfin, le OnSubmitComplete() coté client !
    donc "mon problème" était résolu juste oublié de le mentionner

    ciao

Discussions similaires

  1. détection de la fin d'un téléchargement
    Par gerard tarquin dans le forum Réseau/Web
    Réponses: 5
    Dernier message: 28/05/2007, 19h34
  2. Réponses: 2
    Dernier message: 25/07/2006, 13h11
  3. Réponses: 13
    Dernier message: 04/11/2005, 11h58
  4. [MFC]Détection de la fin d'un thread
    Par Oberown dans le forum MFC
    Réponses: 17
    Dernier message: 25/08/2004, 11h51

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