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 progressbar


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2011
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2011
    Messages : 73
    Par défaut cURL et progressbar
    Bonjour a tous,
    Je sais que le problème a déjà été traité mais après des heures de recherche sur mon pote google je n'ai rien trouvé qui me satisfasse pleinement ...
    Je suis en train de coder un multiuploader donc j'utilise du cURL pour envoyer les fichiers sur les serveurs distants (megaupload, wupload etc ...).
    Ce que je voudrais faire c'est : afficher une barre de chargement lors de l'upload du fichier sur le serveur distant pour ne pas laisser l'utilisateur en suspend devant son 'Loading' voici mon code :
    Code php : 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
     
    function callback($download_size, $downloaded, $upload_size, $uploaded)
    {
    // ma barre de chargement en fonction des valeurs de la fonction
    }
     
     
    $url = "Lien de l'upload";
    $timeout = 60;
     
    $ch = curl_init($url);
     
    curl_setopt($ch, CURLOPT_NOPROGRESS, false);
    curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    curl_setopt($ch, CURLOPT_PROGRESSFUNCTION, 'callback');
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_BUFFERSIZE, 128);
    // Utilisation de la méthode POST
    curl_setopt($ch, CURLOPT_POST, true);
     
    // Définition des champs et valeurs à envoyer
    curl_setopt($ch, CURLOPT_POSTFIELDS, array(
    'file' => "@".$file,
    'no_script' => '1',
    'no_script_submit' => 'Ok'
    ));
     
    $page_content = curl_exec($ch);
    recuperation et affichage du lien de luploader
    curl_close($ch);

    Tout marche a exeption pres que la fonction callback affiche ses valeurs quand le fichier a fini d'être uploadé (normal me direz vous !) mais je voudrais les afficher au fur et a mesure ...
    J'ai pensé a placer la fonction dans un fichier externe et a la tester avec une commande js xHr cependant pour faire cela il faudrais que la fonction cURL ait un id spécifique temporaire pour que callback puisse identifier le bon upload ...
    Et si je fais un return dans callback le script entier s'arrete donc ...
    Merci de votre aide par avance.

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920

  3. #3
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2011
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2011
    Messages : 73
    Par défaut
    Merci pour ta réponse.
    On dirait qu'il y as du mieux par contre j'appelle cette page en ajax et du coups ça s'affiche quand meme a la fin il faut que je l'appelle avec xHr non ?

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par Onyrio Voir le message
    Merci pour ta réponse.
    On dirait qu'il y as du mieux par contre j'appelle cette page en ajax et du coups ça s'affiche quand meme a la fin il faut que je l'appelle avec xHr non ?
    dans ce cas il va falloir passer par APC

  5. #5
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2011
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2011
    Messages : 73
    Par défaut
    J'utilise déja apc pour l'upload du fichier venant de l'utilisateur sur mon serveur, par contre je ne sais pas comment l'utiliser pour l'upload du fichier sur mon serveur sur un serveur distant ...

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par Onyrio Voir le message
    J'utilise déja apc pour l'upload du fichier venant de l'utilisateur sur mon serveur, par contre je ne sais pas comment l'utiliser pour l'upload du fichier sur mon serveur sur un serveur distant ...
    c'est la même chose, tu créer une variable aléatoire, dans ton callback tu fais un apc_fetch avec les infos, après tu 'utilise le même système que pour l'upload pour la récupération

  7. #7
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2011
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2011
    Messages : 73
    Par défaut
    tu peut me poster un exemple si tu a un peu de temps parce que je voivraiment pas comment faire avec mon code ...

  8. #8
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2011
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2011
    Messages : 73
    Par défaut
    dons ma fonction il faudrais que je mette ça donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Exemple #1 Exemple avec apc_fetch()
    <?php
    function callback($download_size, $downloaded, $upload_size, $uploaded)
    {
    $bar = $uploaded;
    apc_store('foo', $bar);
    }
    ?>
    et ensuite dans une fonction externe ça marche cependant,
    comment je peut faire pour associer chaque valeur $bar a une variable aleatoire pour l'identifier correctement ensuite ? car j'ai plusieurs uploads en mem temps

  9. #9
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par Onyrio Voir le message
    dons ma fonction il faudrais que je mette ça donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Exemple #1 Exemple avec apc_fetch()
    <?php
    function callback($download_size, $downloaded, $upload_size, $uploaded)
    {
    $bar = $uploaded;
    apc_store('foo', $bar);
    }
    ?>
    et ensuite dans une fonction externe ça marche cependant,
    comment je peut faire pour associer chaque valeur $bar a une variable aleatoire pour l'identifier correctement ensuite ? car j'ai plusieurs uploads en mem temps
    comme la valeur aléatoire de l'upload

  10. #10
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2011
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2011
    Messages : 73
    Par défaut
    Nikel merci
    Je te posterais le résulata quand le site sera en ligne

  11. #11
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2011
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2011
    Messages : 73
    Par défaut
    Je voudrais que le script continue son exécution meme si le visiyeur a quitté la page.
    Tu pourrais me donner une piste de recherche ?

  12. #12
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par Onyrio Voir le message
    Je voudrais que le script continue son exécution meme si le visiyeur a quitté la page.
    Tu pourrais me donner une piste de recherche ?
    il te faut un système de job queue, éventuellement coupler avec un cron

  13. #13
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2011
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2011
    Messages : 73
    Par défaut
    Ou alors un script shell ? je ne sais pas lequel serait le mieux pour que tout s'execute en meme temps

  14. #14
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par Onyrio Voir le message
    Ou alors un script shell ? je ne sais pas lequel serait le mieux pour que tout s'execute en meme temps
    t'es obligé de faire un système asynchrone avec PHP, sauf si ta possibilité de lancer en process en continu sur ton serveur

  15. #15
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2011
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2011
    Messages : 73
    Par défaut
    Bon alors j'ai trouvé :
    Pour chaque fichier je vais appeller appeller mon script curl en php en ligne de commandes comme ça il sera éffectué en background par contre comment je peux faire passer les variables d'url en CLI ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    php fichier.php mes variables
    merci

  16. #16
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920

  17. #17
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2011
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2011
    Messages : 73
    Par défaut
    Justement j'ai pas trouvé :S

  18. #18
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2011
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2011
    Messages : 73
    Par défaut
    O grand stealth35 eclaire ma lanterne stp ...
    non serieusement j'ai cherché mais je n'ai pas trouvé j'ai jamais fait de prog en shell ducoup je suus vraiment perdu ...

  19. #19
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    je t'ai dis de faire un cron je vois pas pourquoi tu t’embêtes a essaye de faire process lancer par ton serveur web

  20. #20
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2011
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2011
    Messages : 73
    Par défaut
    Oui je vais faire en cron au debut mais ce serait beaucoup plus propre a mon avis en shell ... et je cherche toujours a m'ameliorer ;-)

Discussions similaires

  1. [MFC] afficher une ProgressBar dans une barre d'etat
    Par guillaume21 dans le forum MFC
    Réponses: 5
    Dernier message: 30/03/2007, 11h16
  2. ProgressBar style XP
    Par Rodrigue dans le forum C++Builder
    Réponses: 3
    Dernier message: 08/11/2003, 09h36
  3. comment programmer une progressbar
    Par Choucas dans le forum Paradox
    Réponses: 3
    Dernier message: 13/11/2002, 11h07
  4. ProgressBar avec plusieurs procédures
    Par elifqaoui dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 08/09/2002, 18h03
  5. Couleur de ProgressBar
    Par benj63 dans le forum C++Builder
    Réponses: 7
    Dernier message: 04/07/2002, 17h33

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