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

Langage PHP Discussion :

Curl et barre de chargement [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 464
    Points : 474
    Points
    474
    Par défaut Curl et barre de chargement
    Bonjour,

    J'ai un script php qui utilise curl pour envoi en POST HTTP des fichiers en ligne de commande.
    Je m'aperçois que les utilisateurs sont impatients et ne laisse pas l'envoi se terminer (cela peut prendre 15 minutes). Ils croient que c'est bloqué.

    Je voudrais faire défiler des points (ou n'importe quoi d'autre qui "bouge") pour montrer une activité.

    Aucune importance si cela ne reflète pas la réalité d'une action ou d'un volume chargé, ma seule contrainte c'est faire une animation d'écran ...

    Le problème, c'est que je ne vois pas en php comment lancer simultanément ma fonction curl et un echo "." qui tourne quand curl télécharge.

    Avez vous une idée, une piste ?

    Merci.

  2. #2
    Membre habitué Avatar de alejandro
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2004
    Messages : 167
    Points : 188
    Points
    188
    Par défaut
    Bonsoir,

    A la va vite j'essayerais de mettre un flag en bdd.
    Tu le met à ON quand ton téléchargement débute et à OFF quand c'est terminé.
    Ensuite pendant que la personne patiente tu fais des requêtes ajax régulières pour tester la valeur du flag et animer ou pas une icone de chargement.

    Pas sûr que ça soit la meilleure solution,
    a tester.

    bonne soirée

  3. #3
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Avec Curl tu peux normalement passer une fonction de callback qui est appellé au fur et à mesure de la progression :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    curl_setopt($ch, CURLOPT_PROGRESSFUNCTION, 'progress');
    //...
    //...
    curl_exec($ch);
    Reste ensuite à définir la fonction "progress"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function progress($download_size, $downloaded, $upload_size, $uploaded)
    {
        if($upload_size> 0)
             echo $uploaded/ $upload_size * 100;
        ob_flush();
        flush();
    }
    Note que ob_flush(); peut te poser problème si tu n'as pas un ob_start() dans ton script.

    Si tu n'est pas en CLI mais sur une page web, il faudra probablement modifier progress.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 464
    Points : 474
    Points
    474
    Par défaut
    Ajax ça ne le fait pas je suis en ligne de commande.
    La fonction de callback c'est parfait.

    Merci à vous 2

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

Discussions similaires

  1. [FLASH8] Voir la barre de chargement en local
    Par stanley dans le forum Flash
    Réponses: 1
    Dernier message: 03/07/2006, 14h19
  2. [Upload] Barre de chargement pour envoi de fichier
    Par Caerbannog dans le forum Langage
    Réponses: 3
    Dernier message: 08/11/2005, 12h27
  3. recherche bidouille pour "barre de chargement"
    Par SpaceFrog dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 27/10/2005, 14h46
  4. [FLASH MX2004] Barre de chargement
    Par stanley dans le forum Flash
    Réponses: 1
    Dernier message: 17/10/2005, 08h35
  5. Réponses: 6
    Dernier message: 05/05/2005, 23h47

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