Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/11/2011, 22h44   #1
Nouveau Membre du Club
 
Homme valentin lafranca
Lycéen
Inscription : mai 2011
Messages : 74
Détails du profil
Informations personnelles :
Nom : Homme valentin lafranca
Âge : 19
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : mai 2011
Messages : 74
Points : 26
Points : 26
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 :
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.
Onyrio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 10h14   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 219
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 219
Points : 8 598
Points : 8 598
active l'ob_implicit_flush
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 11h20   #3
Nouveau Membre du Club
 
Homme valentin lafranca
Lycéen
Inscription : mai 2011
Messages : 74
Détails du profil
Informations personnelles :
Nom : Homme valentin lafranca
Âge : 19
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : mai 2011
Messages : 74
Points : 26
Points : 26
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 ?
Onyrio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 11h30   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 219
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 219
Points : 8 598
Points : 8 598
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 11h49   #5
Nouveau Membre du Club
 
Homme valentin lafranca
Lycéen
Inscription : mai 2011
Messages : 74
Détails du profil
Informations personnelles :
Nom : Homme valentin lafranca
Âge : 19
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : mai 2011
Messages : 74
Points : 26
Points : 26
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 ...
Onyrio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 11h52   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 219
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 219
Points : 8 598
Points : 8 598
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 12h03   #7
Nouveau Membre du Club
 
Homme valentin lafranca
Lycéen
Inscription : mai 2011
Messages : 74
Détails du profil
Informations personnelles :
Nom : Homme valentin lafranca
Âge : 19
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : mai 2011
Messages : 74
Points : 26
Points : 26
tu peut me poster un exemple si tu a un peu de temps parce que je voivraiment pas comment faire avec mon code ...
Onyrio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 12h09   #8
Nouveau Membre du Club
 
Homme valentin lafranca
Lycéen
Inscription : mai 2011
Messages : 74
Détails du profil
Informations personnelles :
Nom : Homme valentin lafranca
Âge : 19
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : mai 2011
Messages : 74
Points : 26
Points : 26
dons ma fonction il faudrais que je mette ça donc :
Code :
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
Onyrio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 12h53   #9
Modérateur
 
Inscription : septembre 2010
Messages : 7 219
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 219
Points : 8 598
Points : 8 598
Citation:
Envoyé par Onyrio Voir le message
dons ma fonction il faudrais que je mette ça donc :
Code :
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 28/11/2011, 16h45   #10
Nouveau Membre du Club
 
Homme valentin lafranca
Lycéen
Inscription : mai 2011
Messages : 74
Détails du profil
Informations personnelles :
Nom : Homme valentin lafranca
Âge : 19
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : mai 2011
Messages : 74
Points : 26
Points : 26
Nikel merci
Je te posterais le résulata quand le site sera en ligne
Onyrio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 23h08   #11
Nouveau Membre du Club
 
Homme valentin lafranca
Lycéen
Inscription : mai 2011
Messages : 74
Détails du profil
Informations personnelles :
Nom : Homme valentin lafranca
Âge : 19
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : mai 2011
Messages : 74
Points : 26
Points : 26
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 ?
Onyrio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 23h18   #12
Modérateur
 
Inscription : septembre 2010
Messages : 7 219
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 219
Points : 8 598
Points : 8 598
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2011, 06h57   #13
Nouveau Membre du Club
 
Homme valentin lafranca
Lycéen
Inscription : mai 2011
Messages : 74
Détails du profil
Informations personnelles :
Nom : Homme valentin lafranca
Âge : 19
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : mai 2011
Messages : 74
Points : 26
Points : 26
Ou alors un script shell ? je ne sais pas lequel serait le mieux pour que tout s'execute en meme temps
Onyrio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2011, 11h20   #14
Modérateur
 
Inscription : septembre 2010
Messages : 7 219
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 219
Points : 8 598
Points : 8 598
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2011, 20h00   #15
Nouveau Membre du Club
 
Homme valentin lafranca
Lycéen
Inscription : mai 2011
Messages : 74
Détails du profil
Informations personnelles :
Nom : Homme valentin lafranca
Âge : 19
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : mai 2011
Messages : 74
Points : 26
Points : 26
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 :
1
2
 
php fichier.php mes variables
merci
Onyrio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2011, 20h03   #16
Modérateur
 
Inscription : septembre 2010
Messages : 7 219
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 219
Points : 8 598
Points : 8 598
tout est dans la doc
http://php.net/manual/fr/features.commandline.php
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2011, 20h28   #17
Nouveau Membre du Club
 
Homme valentin lafranca
Lycéen
Inscription : mai 2011
Messages : 74
Détails du profil
Informations personnelles :
Nom : Homme valentin lafranca
Âge : 19
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : mai 2011
Messages : 74
Points : 26
Points : 26
Justement j'ai pas trouvé :S
Onyrio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2011, 14h27   #18
Nouveau Membre du Club
 
Homme valentin lafranca
Lycéen
Inscription : mai 2011
Messages : 74
Détails du profil
Informations personnelles :
Nom : Homme valentin lafranca
Âge : 19
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : mai 2011
Messages : 74
Points : 26
Points : 26
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 ...
Onyrio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2011, 14h46   #19
Modérateur
 
Inscription : septembre 2010
Messages : 7 219
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 219
Points : 8 598
Points : 8 598
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2011, 18h16   #20
Nouveau Membre du Club
 
Homme valentin lafranca
Lycéen
Inscription : mai 2011
Messages : 74
Détails du profil
Informations personnelles :
Nom : Homme valentin lafranca
Âge : 19
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : mai 2011
Messages : 74
Points : 26
Points : 26
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 ;-)
Onyrio est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h50.


 
 
 
 
Partenaires

Hébergement Web