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:
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.