PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WEBDEV (précédentes versions) → WebDev22 - Help Stagiaire - Surveiller l'avancée du téléchargement d'un document
WebDev22 - Help Stagiaire - Surveiller l'avancée du téléchargement d'un document
Débuté par nicolas FOURNIALS, 28 nov. 2019 10:08 - 6 réponses
Posté le 28 novembre 2019 - 10:08
Bien le bonjour à vous, et merci d'avance pour votre aide.

Dans le cadre de mon stage, on me demande de créer une procédure permettant de surveiller l'avancée du téléchargement d'un document depuis le serveur vers le poste client, de manière à ne modifier le booléen correspondant QUE lorsque le fichier a été téléchargé en totalité puis affiché (et donc de pouvoir le faire disparaître du fichier tampon sans priver l'utilisateur).

Je découvre WinDev et WebDev, aussi, soyez un peu indulgents, je vous prie.

J'ai découvert, en fouillant la doc le type httpAvancement ( https://doc.pcsoft.fr/fr-FR/?1000021222&name=TYPE_httpAvancement ), mais je ne comprends pas vraiment comment l'utiliser ici.

Faut-il que je positionne l'appel à la procédure dans la partie OnLoad du Navigateur, ou alors dans l'initialisation de la page? Et comment suis-je supposé la rédiger? C'est un peu confus pour moi...
Posté le 28 novembre 2019 - 11:15
Depuis le serveur vers le poste client c'est plutot un download qu'un upload non ?
Posté le 28 novembre 2019 - 11:47
alors, pardon, oui, toutes mes excuses pour l'erreur de vocable.

ça ne change pas, je pense, grand chose à ma demande, qui est, je le rappelle, de pouvoir traquer le flux des données, et de comprendre le fonctionnement de l'implantation du code.

Voici l'exemple de la page httpAvancement:

cMaRequête est un httpRequête
cMaRequête..URL = "http://www.pcsoft.fr"
cMaRequête..AvancementTéléchargement..Procédure = MaCallBack
cMaRéponse est un httpRéponse = HTTPEnvoie(cMaRequête)
SI ErreurDétectée ALORS
Erreur(ErreurInfo(errComplet))
SINON
Info(cMaRéponse..Contenu)
FIN


La procédure MaCallBack dont il est question dans l'exemple fourni, que devrait-elle contenir pour pouvoir surveiller l'upload? Un appel à la jauge? C'est un petit peu nébuleux, pour moi.

Merci d'avance.
Posté le 28 novembre 2019 - 12:09
extrait de : https://doc.pcsoft.fr/fr-FR/?1000021222


Procédure Chaîne de caractères Nom de la procédure utilisée pour suivre l’avancement. Cette procédure sera notifiée de l'avancement à la fréquence indiquée.
Cette procédure est de la forme :
PROCEDURE <Nom de la procédure> (<Total>, <Progression>)
où :
<Total> est le nombre total d'octets à transférer.
<Progression> est le nombre d'octets déjà transférés.
Attention : Si les propriété ..Procédure et ..Jauge sont renseignées, la propriété ..Procédure est prioritaire pour l’appel.

ca peut aider
Membre enregistré
2 messages
Posté le 28 novembre 2019 - 13:38
C'est effectivement celle que je lis depuis tout à l'heure, merci. ça veut donc dire que j'étais sur la bonne voie.

Je vais donc faire ce que je fais d'habitude: tester des trucs, échouer de manière incongrue, essayer de comprendre pourquoi, et remonter petit à petit vers l'origine du problème, en modifiant ma compréhension des choses. Yay!

Merci go24!
Posté le 28 novembre 2019 - 13:52
cMaRequête est un httpRequête
cMaRequête..URL = "http://www.pcsoft.fr"
cMaRequête..AvancementTéléchargement..Procédure = macallback
cMaRéponse est un httpRéponse = HTTPEnvoie(cMaRequête)


PROCÉDURE INTERNE macallback(tot, prog)
ToastAffiche("total" + tot +"-->" + prog)
SI tot = prog THEN ToastAffiche("c'est fini")
// tot taille du fichier , prog la taille actuellement tramise

FIN

Bon dev
Membre enregistré
2 messages
Posté le 28 novembre 2019 - 14:50
Bon, à force de tâtonner, j'ai réussi à PRESQUE reproduire la structure de la procédure, et PROBABLEMENT à obtenir quelque chose qui fonctionneRAIT SI j'étais en mesure de traquer la progression.

Dans l'exemple cité par go24 concernant la procédure, trois éléments sont indiqués entre chevrons:
-le nom de la procédure (facile)
-le poids total du document à uploader (moins facile, mais réalisable)
-et la progression.

Et c'est justement là-dessus que je bloque: comment faire pour récupérer cette progression? Il semble falloir fournir cette valeur en paramètre à la procédure, mais c'est précisément pour la connaître que je reprends cette procédure? Qu'est-ce que je n'ai pas compris là-dedans?