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

JavaScript Discussion :

barre de progression


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8
    Par défaut barre de progression
    Bonjour,

    je travaille sur un module d'upload de fichiers avec barre de progression. Pour l'instant je ne me suis pas attaqué à la barre mais juste aux informations de téléchargement tel que la taille du fichiers, la taille uploadée etc... Le problème je pense, c'est qu'il ne trouve pas le fichier temporaire, et donc les infos relatives. Je me suis aidé de beaucoup de tuto et de forum sans trouver le problème.Mais voici mon code

    Mon fichier principal:
    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
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    	   "http://www.w3.org/TR/html4/loose.dtd">	
    <html>
    <head>
    <title>== Progress ==</title>
    <script type="text/javascript">
    /*
        Temporise avant l'envoie de la requête pour éviter un bug
    */
    function attendEnvoie() {
        setTimeout(testProgress,50);
    }
     
    /*
        Construit la requête xmlHttpRequest 
    */
    function testProgress() {
        var idProgress=document.getElementById("progress_key").value;
     
        var xhr=new XMLHttpRequest();
     
        xhr.onload=tcb;//la fonction de rappel qui gère la réponse du serveur
        //la requête est envoyé en mode asynchrone(paramètre true) pour éviter de geler le navigateur
          xhr.open("GET","progress.xhr.php?progress_key="+idProgress,true);
    	  xhr.onreadystatechange=handleRequestStateChange;
          xhr.send(null);
    }
     
    /*
        Permet d'annuler l'envoie des infos par le navigateur via la méthode stop() de l'objet window
        Peut provoquer le plantage du navigateur(ff2), à affiner ^^
    */
    function annule() {
        //récupération de l'objet window de l'iframe
        var winIfrm=document.getElementById("tfrm").contentWindow;
        winIfrm.stop();
    }
     
    /*
        La fonction de rappel de l'objet xmlHttpRequest
    */
    function tcb() {
        var repXhr=this.responseText; //récupération de la réponse du serveur via l'objet xmlHttpRequest (this)
     
        /*
            La réponse envoyé par le serveur étant au format texte il faut utiliser eval() pour la manipuler
            La réponse au format json ne peut être exploité directement par eval,
            il faut l'entourer de parenthèses via une concaténation pour éviter un bug
        */
        var objRep=eval("("+repXhr+")");
     
        document.getElementById("enCours").innerHTML=objRep.current;	
        document.getElementById("total").innerHTML=objRep.total;
        document.getElementById("tab").innerHTML=repXhr;
     
        //tant que l'upload est en cours le serveur est réinterrogé
        if (objRep.done==0) { testProgress(); }
    }
     
     
    </script>
    </head>
    <body>
    <form enctype="multipart/form-data" target="tfrm" action="essai.php" method="post" onsubmit="attendEnvoie();">
    	<input type="hidden" name="APC_UPLOAD_PROGRESS" id="progress_key" value="<?php echo uniqid();?>" >
    	<input type="file" id="test_file" name="test_file"><br>
    	<!-- histoire de tester la réaction lors d'un envoie multiple 
    	<input type="file" id="test_file2" name="test_file2"><br>
    	-->
    	<input type="submit" value="Upload!">
    	<input type="button" onclick="annule();" value="Annule">
    </form>
    <div id="rep" style="width:400px; height:200px; margin:10px; padding:10px;">
    	<span id="enCours"></span> Ko sur <span id="total"></span> Ko
    	<p>Tableau des infos de progression au format json :</p>
    	<p id="tab"></p>
    </div>
    <iframe id="tfrm" name="tfrm" style="display:none;"></iframe>
    </body>
    </html>
    Le fichier progress.xhr.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
    if (isset($_GET['progress_key'])) {
        $rep=apc_fetch($_GET['progress_key']);      
        echo json_encode($rep);     
        exit;
    }
    ?>
    Merci d'avance pour votre aide

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 397
    Par défaut
    Utilise les balises CODE pour mettre en valeur ton bout de CODE, tu peux les obtenir en utilisant la petite icone # en haut de l'éditeur de texte.

    Autrement faut vraiment être motivé pour le lire et t'aider. Alors après le repas

Discussions similaires

  1. Indy FTP (idFTP) faire une barre de progress de transfert
    Par Harry dans le forum Web & réseau
    Réponses: 4
    Dernier message: 09/07/2004, 13h15
  2. [VB.NET] Pb avec le bouton Annuler d'1 barre de progression
    Par dada1982 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 30/06/2004, 09h56
  3. Réponses: 12
    Dernier message: 27/05/2004, 00h13
  4. [DEBUTANT] Barre de progression
    Par pupupu dans le forum MFC
    Réponses: 4
    Dernier message: 18/01/2004, 16h47
  5. [web] Barre de Progression ASCII
    Par Red Bull dans le forum Web
    Réponses: 13
    Dernier message: 05/06/2003, 12h56

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