Barre d'avancement d'upload/download

Bonjour,

Je suis en train de réaliser une plateforme de téléchargement d’images haute def et d’autres documents en PHP mySQL.

Quand les internautes téléchargeront des fichiers, je voudrais afficher une barre de telechargement, de façon à ce qu’ils n’attendent pas devant un écran figé.

Vous savez comment on peut faire ça? Apparemment en PHP, ça semble pas possible. Quelqu’un sait comment je pourrais faire?

En résumé : Glop, au secours.

[quote]Bonjour,

Je suis en train de réaliser une plateforme de téléchargement d’images haute def et d’autres documents en PHP mySQL.

Quand les internautes téléchargeront des fichiers, je voudrais afficher une barre de telechargement, de façon à ce qu’ils n’attendent pas devant un écran figé.

Vous savez comment on peut faire ça? Apparemment en PHP, ça semble pas possible. Quelqu’un sait comment je pourrais faire?

En résumé : Glop, au secours.[/quote]Quand tu télécharges un truc depuis un serveur c’est ton navigateur qui se charge d’afficher la barre de progression. Après si tu veux la changer tu peux passer par morceau de java qui vas gérer le download, mais quel interet ?

Oui la je pige pas Si c’est pour du download je pige pas… si c’est pour de l’upload… il vaut mieux pas passer par une page web si ce sont des gros fichiers, ou de te faire un controlle integre en Java ou autre mais pas juste de l’upload http roots. Meme en php/javascript je vois pas trop comment tu pourrais faire une truc fiable.

Sans doute pense-t-il à quelque chose dans ce style : http://www.sk1ll.ch

Ou une chtite gif animee ? C’est beau, c’est propre … et c’est po complique

Tu penses à quelque chose du genre d’une redirection vers ce qu’on appelle un “loading” en flash, après le début du transfert ? Parce qu’à part en flash, je vois pas bien comment on peut organiser ça…

J’ai une question +/- dans le même style : j’ai une page web dont voici l’adresse qui propose un menu pour choisir un fond musical, un juke boxe si on veut. Et lorsqu’on sélectionne une musique on doit attendre un certain temps sans qu’il ne se passe rien avant que la musique ne se lance. J’ai utilisé un Java Script , et ma page est en html. Je sais pas si vous voyer ce que je veux dire… En fait ce serait bein une barre d’état du DL 

[quote]J’ai une question +/- dans le même style : j’ai une page web dont voici l’adresse qui propose un menu pour choisir un fond musical, un juke boxe si on veut. Et lorsqu’on sélectionne une musique on doit attendre un certain temps sans qu’il ne se passe rien avant que la musique ne se lance. J’ai utilisé un Java Script , et ma page est en html. Je sais pas si vous voyer ce que je veux dire… En fait ce serait bein une barre d’état du DL [/quote](ok, si ton chouchou c’est Faskil, ça va alors, jte pardonne le JavaScript)
Je connais pas de moyen sûr d’afficher la barre d’état du DL, par contre tu peux tricher : 
proposer 2 choix de dl, une “haut débit” et une “modem” (dans ton menu déroulant). Tu calcules combien de temps à peu près ça met pour chaque débit, et tu crées une anim qui dure ce temps là… C’est pas très sophistiqué, et y’a sûrement mieux, mais c’est tout ce que j’ai en stock…

ok merci quand même. Je devraispeut être poser la question sur un site de Java scripts.
 

Nan je vous explique :
En fait la plateforme de téléchargement sur laquelle je bosse propose la même gestion des downloads que des achats sur un site de vente en ligne.

On sélectionne des fichiers à télécharger, qui vont se ranger dans un “panier”. A la fin on télécharge l’intégralité du panier.

Ca c’est pour le download. Au moment du téléchargement, il me faudrait une barre de progression.

Pour l’upload, lorsqu’on envoie un fichier sur le serveur via mon Back Office, il me faut aussi une barre de progression…

Voilà.

Je comprend pas.
Tu fais ton panier puis tu télécharges tout.
Mais tu télécharges quoi ? Un fichier, un zip, un .gif…?
Dans ce cas, ton browser va lancer la boite de sauvegarde comme un grand…

Pourquoi il y aurait une barre de progression ?

Si tu utilises un composant, pour gérer la communication client - serveur web, genre un activex, là je comprendrais.

Mais comme c’est du php je comprend pas.

J’ai pensé au début que tu parlais d’une barre de progression, comme on en fait pour l’upload… En ASP on y arrive en jouant avec Response.Buffer, mais je connais pas sa version PHP.

En tout cas j’avoue être un peu perdu.

Disons que là je veux qu’il me télécharge plusisuers fichiers (.doc, .jpg, .pdf principalement) mais en même temps et que la barre de progression prenne en compte tous les fichiers.

Ben… Je crois que je vais être pessimiste…

Tu veux envoyer des fichiers à l’utilisateur.
OK.
Mais ce qui me semble “embetant” c’est ce que va recevoir le client.
Si par exemple tu m’envois un .doc, à cause de la définition MIME de mon IE, mon Word va se lancer et ouvrir le fichier. Après, à moi de sauvegarder.
Pareil pour le .pdf et acrobat.

Par contre si tu m’envois un .zip, j’aurais la boite de dialogue qui me demandera si je veux enregistrer ou ouvrir le fichier.

Bref, je suis pas convaincu.

Une solution qui me semblerait valable, c’est, une fois le panier rempli, de lancer un process qui va s’occuper de réunir les fichiers choisis dans un .zip.
Puis ensuite d’envoyer le-dit fichier au client.

Là encore, j’ai du rater ton explication, puisque le client va se retrouver avec la boite de dialogue de sauvegarde de fichier classique, qui donne une barre de progession (là je parle pour IE, je sais pas ce qu’affiche les autres browsers)…

Bref, soit tu compliques l’histoire, soit j’ai raté l’info essentielle et j’ai pas compris, et je te dis n’importe quoi.

 Tu peux gérer une barre de progression basique pour des images avec un truc de ce genre là en javascript :

preload[1] = new Image();
preload[1].src = “image1.jpg”;

preload[N] = new Image();
preload[N].src = “imageN.jpg”;

function preload() {
 intervalle=500; //(millisecondes)
 preloaded=0;
 for (i=1;i

Oui non mais la en fait javascipt c’est vraiment pas fait pour. Le mieux c’est encore d’avoir un client integre activex/java/.net (le mieux: au choix) pour faire tout ca joli, avec une vrai barre de progression et du vrai feedback. HTTP est vraiment pas fait pour faire ca et tu touches les limites de l’utilisation web la. Tu peux aussi faire un client natif a telecharger a part d’ailleurs. Tous les sites qui vendent des “data” online que je connais ont un systeme de ce type avec un client de telechargement qui est petit et qui se charge de downloader ce qu’il faut.

Certes, mais cette solution a le mérite de fonctionner, et ce sans se lancer dans quelque chose de trop "compliqué" .