[Résolu] Arrêter l'exécution de HTTPDonneRésultat
Stagiaire WDF
Inscrit:
04/05/2006 17:31
Post(s): 4
Bonjour,

j'ai créé une fonction me permettant de télécharger des fichiers. A cela, j'associe une jauge permettant de voir la progression de mon téléchargement.
Tout cela fonctionne correctement, mais je souhaiterais pouvoir arrêter le téléchargement lorsque l'utilisateur clique sur le bouton Annuler.

Voici le code que j'ai:
PROCEDURE DownloadFile(sURL="")
iIdFile is int
bDownloadFile is boolean

HTTPProgressBar("DownloadJauge")
iIdFile = fOpen(fExeDir() + "\apps\PortableCdex.zip", foCreate)
IF iIdFile <> -1 THEN
	bDownloadFile = HTTPRequest("http://download.framakey.org/apps/PortableCDex-1.51-fr-r02.zip", "Winaptic")
	IF bDownloadFile THEN
		fWrite(iIdFile, HTTPGetResult(), Length(HTTPGetResult()))
	END
	fClose(iIdFile)
END

PROCEDURE DownloadJauge(iTotalOctet, iTotalTransmis)
FEN_Progress.JAUGE_Jauge1 = (iTotalTransmis / iTotalOctet) * 100
//Trace("Transfert en cours : " +iTotalTransmis+" / "+ iTotalOctet)
Multitâche(-1)


J'ai essayé en renvoyant Faux lors du clic sur le bouton annuler dans la procédure DownloadJauge (ça fonctionne avec Jauge() mais à priori pas avec httpjauge() )

J'ai également essayé de lancer la fonction DownloadFile dans un ThreadExécute et en l'arrêtant avec ThreadArrete mais: 1. l'arrêt du thread est trop lent à mon goût (plusieurs secondes) 2. je ne suis pas certain que le thread s'arrête réellement

Si vous avez des pistes pour m'orienter dans mes recherches, je suis à votre écoute.

Cordialement,
Léviathan

Contribution le : 24/01/2007 00:45

Edité par drcharly93 sur 26/1/2007 13:09:35
Créer un fichier PDF de la contribution Imprimer


Re: Arrêter l'exécution de HTTPDonneRésultat
Animateur WDF
Inscrit:
19/01/2004 13:48
De www.sigmasys.fr
Post(s): 988
Bonjour,

Voici une solution sans thread :

PROCEDURE DownloadFile(sURL="")
iIdFile est entier
bDownloadFile est booléen

HTTPJauge("DownloadJauge")

iIdFile = fOuvre(fRepExe() + "\PortableCdex.zip", foCréationSiInexistant + foEcriture)
SI iIdFile <> -1 ALORS
	QUAND EXCEPTION DANS
		bDownloadFile = HTTPRequête("http://download.framakey.org/apps/PortableCDex-1.51-fr-r02.zip", "Winaptic")
		SI bDownloadFile ALORS
			fEcrit(iIdFile, HTTPDonneRésultat(), Taille(HTTPDonneRésultat()))
		FIN
		fFerme(iIdFile)
	FAIRE
		fFerme(iIdFile)
	FIN

FIN
__________________________________________________
PROCEDURE DownloadJauge(iTotalOctet, iTotalTransmis)

Trace("Transfert en cours : " +iTotalTransmis+" / "+ iTotalOctet)
Multitâche(-1)
//*** bAbord est un booléen //Variable globale de la fenêtre par défaut à faux -> Mettre dans le bouton annuler bAbord = vrai

SI bAbord ALORS
	Trace("**** STOP ****")
	HTTPJauge("")  //** On désactive la jauge
	HTTPRequête("http://www.pcsoft.fr") //** On courcircuite la requête en cours
	HTTPDonneRésultat(HTTPRésultat) //** On Récupère le résultat
        //*** La requête initiale est maintenant interrompu ***//
FIN



Bon dév.,

Totof

Contribution le : 24/01/2007 14:01
_________________
[ Totof(Christophe LOGEL) réalise des développements spécifiques WinDev (Mon annonce wdforge), http://www.sigmasys.fr]
Créer un fichier PDF de la contribution Imprimer


Re: Arrêter l'exécution de HTTPDonneRésultat
Stagiaire WDF
Inscrit:
04/05/2006 17:31
Post(s): 4
merci beaucoup Totof.
Ca fonctionne parfaitement.

Si j'ai bien compris, le fait de créer une nouvelle requête et surtout de récupérer le résultat avec HTTPDonneRésultat() provoque une exception dans la fonction HTTPDonneRésultat() de la procédure DownloadFile. Ce qui permet d'arrêter l'écriture du fichier. C'est une idée de génie

Merci encore.

Cordialement,
Léviathan

Contribution le : 24/01/2007 14:44
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2