ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

telecharger un fichier a partir d'une url http avec une progress bar ou thermometre (dll wininet)   



L'auteur

Olivier Hamou
France France
Membre Simple
# 0000000017
enregistré le 13/10/2004
http://www.planitron.com
Hamou Olivier
94100 Saint Maur des fossés
de la société PLANITRON
Fiche personnelle


Note des membres
pas de note

Contributions > 06 - VCX - Bibliothèque de classes visuelles

telecharger un fichier a partir d'une url http avec une progress bar ou thermometre (dll wininet)
# 0000000492
ajouté le 09/11/2007 16:26:22 et modifié le 07/07/2008
consulté 11190 fois
Niveau expert

Version(s) Foxpro :
VFP 9.0
VFP 8.0
VFP 7.0


Le téléchargement des pièces jointes est limité aux membres
Veuillez vous identifier ou vous inscrire si vous n'avez pas encore de compte ...
Description
Si vous avez besoin de telecharger un fichier avec une progress bar ou Thermometre
afin d'avoir la progression de telechargement.

telecharger cette classe !
Code source :
* Telecharger la class dans c:\downloadUrl
* Puis voici les instruction pour le lancer :

Local cREP_DEPART as String
m.cREP_DEPART = "C:\DownloadUrl\"
Set Default To (m.cREP_DEPART)

oHTTP = NewObject("DownloadUrl","CLASS_WININET.vcx")
oHTTP.GetFile("http://mondomaine.com/maj.zip",m.cREP_DEPART +"\maj.zip")

Commentaires
le 04/07/2008, Gregory Adam a écrit :
Si je ne me trompe Olivier, tu oublies InternetCloseHandle(This.nOpen)

- soit a la fin de getfile
- soit dans le destroy de la classe

le 05/07/2008, Olivier Hamou a écrit :
Salut Greg

Dans la methode GetFile à la fin du Traitement, je ferme le Handle avec
InternetCloseHandle.
Juste Avant de fermer decripteur de fichier.
Olivier

le 07/07/2008, Gregory Adam a écrit :
C'est vrai, Olivier. Tu fermes This.nConnect

Mais je crois qu'il faut fermer This.nOpen aussi

le 07/07/2008, Olivier Hamou a écrit :
Tu as raison, je le fermais dans 1 seule condition,
je l'ai corrigé pour le fermer à tous les coups !


Merci Greg,

le 07/07/2008, Gregory Adam a écrit :
Olivier,

D'habitude, je mets ces trucs dans le destroy() de la classe. Quand on est en train de developper, cela arrive qu'on a beaucoup de 'handle' qui ne sont pas fermes. Si on oublies quelques InternetCloseHandle(), l'IDE se plante

Donc, dans ta classe, je fermerais et mettrais this.nFopen = 0
Dans le destroy, tu testes si nopen <> 0, si oui tu appelles InternetCloseHandle(this.nOpen)

Ce que je viens de faire recemment est de construire une classe (de base) qui me gere tout cela. J'ajoute les handle a fermer
Quand l'objet est detruit, tous les handles sont fermes

Pour le moment, je l'uitilse pour les InternetCloseHandle(), fclose(), et meme pour effacer des fichiers/repertoires.

le 07/07/2008, Olivier Hamou a écrit :
Exact, d'habitude,
Je crée une methode qui ferme la connexion et je prefere passer par une methode independantes que l'on peut appeller tout le temps, plutot que le destroy(),

Mais en effet, c'est beaucoup mieux ! donc j'ai corrigé la methode connexion et ajouté une methode closeConnection()

Olivier

le 07/07/2008, Gregory Adam a écrit :
Muy bien hecho

www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2024.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3