8791 sujets

Développement web côté serveur, CMS

Bonjour tout le monde,

J'ai besoin que l'on m'aiguille. En effet, j'ai un script qui permet, en donnant le lien direct d'un fichier dans un champ de formulaire, de faire télécharger le dit fichier par le serveur. Cela fonctionne d'ailleurs parfaitement bien.

Maintenant, pour que ça soit un peu plus sympa et "pratique", j'aimerais rajouter une barre de chargement qui va représenter le téléchargement du fichier par cette commande wget.

Après m'être renseigné, on m'a parlé d'exporter le résultat du wget vers un fichier .txt (ce que je fais déjà à l'aide du paramètre -o) et ensuite de faire une barre de progression en Ajax (langage que je ne connais pas mais que je viens de commencer à apprendre).

Alors voilà, j'aimerais savoir si je suis sur la bonne voix (histoire de ne pas partir sur n'importe quoi) ? Si oui, je suis preneur d'éventuelles indications car je n'ai absolument rien trouvé de concluant sur la toile, même à l'aide de mon ami Google... Smiley ohwell

Merci d'avance pour vos conseils ! Smiley cligne
D'après ce que tu décris l'idée serait de faire des requêtes ajax récursive durant le téléchargement du fichier pour aller interroger un petit script PHP par exemple qui va lire la valeur enregistrée dans le fichier txt.

Je ne suis passur que ça soit la méthode la plus efficace mais ça devrait fonctionner. L'idéal serait de faire du push pour que ce soit son serveur qui envoie l'état de l'upload au client et non le client qui vient interroger le serveur.
moust a écrit :
D'après ce que tu décris l'idée serait de faire des requêtes ajax récursive durant le téléchargement du fichier pour aller interroger un petit script PHP par exemple qui va lire la valeur enregistrée dans le fichier txt.


C'est le principe que j'ai trouvé, oui. Le fichier .txt en question contenant à un certain endroit le pourcentage, je pense qu'il y a possibilité de lancer en permanence une recherche dans ce fichier qui va récupérer le pourcentage en question et ensuite, je ne sais pas encore comment l'exploiter.

moust a écrit :
Je ne suis passur que ça soit la méthode la plus efficace mais ça devrait fonctionner.


Quelle serait pour toi la méthode la plus efficace dans ce cas ? Ne connaissant pas encore l'Ajax, je cherche, tant qu'à faire, la méthode qui sera la plus optimisée (à partir du moment où elle ne demande pas d'ENORMES connaissances non plus en programmation).

moust a écrit :
L'idéal serait de faire du push pour que ce soit son serveur qui envoie l'état de l'upload au client et non le client qui vient interroger le serveur.


Je ne suis pas sûr de connaître cette notion de "push" (ormis pour les boites e-mail, le principe de recevoir ses mails instantanément).
Une petite recherche sur Google m'a amené ici. Est-ce dont tu me parlais ?
Salut !

Comme indiqué sur l'article, la technique utilisé est bonne pour peu d'utilisateur en même temps (allez, on va dire à la louche, moins de 5 personnes), car ça laisse le serveur tourner non stop quand même.

Mais dans le style, c'est ça le push Smiley cligne
Super_baloo8 a écrit :
Salut !

Comme indiqué sur l'article, la technique utilisé est bonne pour peu d'utilisateur en même temps (allez, on va dire à la louche, moins de 5 personnes), car ça laisse le serveur tourner non stop quand même.

Mais dans le style, c'est ça le push Smiley cligne


D'accord, merci de ta réponse !

Ca m'en fait des choses à apprendre, au boulot !

Par contre ce qui me paraît dingue, c'est que personne n'ai encore posté sur internet un script de barre de progression d'un Wget... Ca ne doit pas être très courant. Smiley ohwell
En effet, c'est assez rare car en principe on voit plutôt le téléchargement de poste client à serveur. Rarement l'inverse (au travers d'une interface web)
Le lien que tu donne n'est pas vraiment du push, c'est ce que l'on appel du long polling (une sorte de dérivé). Et comme le dit Super_baloo8, ça va très vite montrer ses limites en prod.
Pour faire du push en PHP il te faut passer par les sockets (si ton serveur le permet car il y a généralement une restriction imposée sur les serveur mutualisés).

Quelque soit la technologie utilisé le push va se base sur les sockets. On dit au client d'écouter un port du serveur sur lequel ce dernier va transmettre des informations. L'exemple d'usage le plus courant est celui du tchat.

Côté technologies pour faire du push tu peux utiliser PHP, JAVA, NodeJS...

Et comme je suis bon prince je vais même te donner un lien vers un service qui propose une API pour faire du push si tu n'as pas les pré-requis nécessaires sur ton serveur. Smiley cligne (il en existe d'autres)
Modifié par moust (27 Mar 2012 - 14:06)
moust a écrit :
Le lien que tu donne n'est pas vraiment du push, c'est ce que l'on appel du long polling (une sorte de dérivé). Et comme le dit Super_baloo8, ça va très vite montrer ses limites en prod.[/quote

Normalement, ça devrait aller (du moins pour le moment) car l'accès n'est pas ouvert au public.

[quote=moust]Pour faire du push en PHP il te faut passer par les sockets (si ton serveur le permet car il y a généralement une restriction imposée sur les serveur mutualisés).


J'ai un serveur dédié sous Debian, donc je pense que je n'ai pas cette restriction (enfin je suppose puisque je ne connais pas trop tout ça, c'est un ami qui gère principalement côté serveur Smiley cligne ).

moust a écrit :
Quelque soit la technologie utilisé le push va se base sur les sockets. On dit au client d'écouter un port du serveur sur lequel ce dernier va transmettre des informations. L'exemple d'usage le plus courant est celui du tchat.

Côté technologies pour faire du push tu peux utiliser PHP, JAVA, NodeJS...


Et ben, ça va me donner du boulot tout ça encore ! Smiley lol

moust a écrit :
Et comme je suis bon prince je vais même te donner un lien vers un service qui propose une API pour faire du push si tu n'as pas les pré-requis nécessaires sur ton serveur. Smiley cligne (il en existe d'autres)


Hé hé, je te remercie, j'attends le lien avec impatience alors ! Smiley cligne
Arf, j'ai oublié de copier-coller le lien en question >_<
Voilà :
http://pusher.com/

Mais si tu peux utiliser les sockets sur ton serveur le mieux est de faire ton propre script.
Modifié par moust (28 Mar 2012 - 14:18)
moust a écrit :
Arf, j'ai oublié de copier-coller le lien en question &gt;_&lt;
Voilà :
http://pusher.com/

Mais si tu peux utiliser les sockets sur ton serveur le mieux est de faire ton propre script.


Je me disais aussi... Smiley lol

Merci pour le lien, je vais me pencher sur les sockets alors.
Bonjour à tous,

Comme je l'ai dit dans mon message précédent, je me suis plongé dans les sockets.

Effectivement, ça permet "d'écouter" jusqu'à ce qu'une action arrive, ensuite ça arrête.

Mon soucis, c'est que je ne vois pas comment l'utiliser pour Wget, afin de récupérer l'avancement... Smiley sweatdrop

Je pense avoir du mal à visualiser l'utilité dans mon cas...

Merci à ceux qui peuvent m'éclairer ! Smiley cligne