DLL POUR CONNEXION FTP

TTMan Messages postés 104 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 12 février 2007 - 20 août 2003 à 17:45
ozar Messages postés 24 Date d'inscription mardi 3 octobre 2000 Statut Membre Dernière intervention 15 mai 2009 - 15 mai 2009 à 09:50
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/8293-dll-pour-connexion-ftp

ozar Messages postés 24 Date d'inscription mardi 3 octobre 2000 Statut Membre Dernière intervention 15 mai 2009
15 mai 2009 à 09:50
Pour ceux qui veulent connaître la différence entre mode actif et passif, allez voir :

http://knol.google.com/k/yann-riviere/ftp-active-and-passive-mode/6i5b6z50f82p/2#
ozar Messages postés 24 Date d'inscription mardi 3 octobre 2000 Statut Membre Dernière intervention 15 mai 2009
15 mai 2009 à 09:46
En effet, j'avais omis la partie déclarative de la méthode connect qui est la suivante :

Public Function Connect(ByVal sServerName As String, _
ByVal sUserName As String, _
ByVal sPassWord As String, _
Optional ByVal bOpenPassive As Boolean = False) As Long

Concernant la méthode getFile, le flag INTERNET_FLAG_RESYNCHRONIZE n'était pas correcte puisqu'il s'agit de la gestion des attributs du fichier, c'est pourquoi il vaut mieux utiliser le flag FILE_ATTRIBUTE_NORMAL.

Voilà c'est tout, merci beaucoup pour cette DLL vraiment très pratique (à utiliser sans modération ^^)
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
14 mai 2009 à 18:05
Salut et merci de partagé.

Ta première modif doit faire partie d'une amélioration globale personnelle du projet permettant d'offrir le choix du mode PASSV (avec bOpenPassive) qui n'existait pas dans la source.

La seconde permet de s'affranchir de la mémoire tampon, oui.
ozar Messages postés 24 Date d'inscription mardi 3 octobre 2000 Statut Membre Dernière intervention 15 mai 2009
14 mai 2009 à 16:37
Bonjour,

J'ai corrigé quelques erreurs concernant deux méthodes :
Connect => connexion par défaut en mode actif (permet ou non au client de gérer le port de connexion)
GetFile => supression d'un flag et oblige l'API à retélécharger le fichier si déjà présent dans le cache)

Voici le code modifié :

'Connect To Server
If hOpen <> 0 Then
iFlags = INTERNET_FLAG_EXISTING_CONNECT Or IIf(bOpenPassive, INTERNET_FLAG_PASSIVE, 0)

iConnHandle = InternetConnect(hOpen, _
sServerName, _
INTERNET_INVALID_PORT_NUMBER, _
sUserName, _
sPassWord, _
INTERNET_SERVICE_FTP, _
iFlags, &H0)

Dans la méthode GetFile :

bRet = FtpGetFile(hConnectHandle, _
sSourceFileWithPath, _
sDestFileWithPath, _
False, _
FILE_ATTRIBUTE_NORMAL, _
lTransferType Or INTERNET_FLAG_RELOAD, _
&H0)
cs_Dalton Messages postés 10 Date d'inscription lundi 6 mai 2002 Statut Membre Dernière intervention 13 novembre 2007
23 nov. 2005 à 11:09
Félicitation Jack, cette source est super. Jusqu'a nprésent j'utilisais l'objet Inet qui me posait de gros problème à la fermeture (très longue attente avant fermeture total du programme sur mon portable.), avec ta source, plus de problème, la fermeture est immédiate. Et de plus source très bien expliqué. Je te mets 10!
sarl_adc Messages postés 141 Date d'inscription lundi 3 novembre 2003 Statut Membre Dernière intervention 20 octobre 2005
17 août 2005 à 17:20
Merci pour ta source.

J'ai récupéré que quelques petits bouts pour mes besoins mais le tout a l'air pas mal.

Par contre niveau interface de ton client FTP, y'a quelques automatisations que tu pourrais faire facilement si tu devais t'en servir, du genre éviter de rentrer le nom des répertoires à la main lorsque tu navigues sur le serveur, etc...

Ca mérite quand même une super note :-)
thuillez Messages postés 32 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 24 août 2008
24 avril 2005 à 11:19
Oui mais je n'arrive pas a lire "TemplateFTP.vbg".
J'ai visual studio (donc visual basic) entreprise architect 7.0.

Mais vu que la *.dll est compilee je peut la lire c'est pourquoi je demandais ca.

@+
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
24 avril 2005 à 00:18
Devine poursoui j'ai fais un Zip !
thuillez Messages postés 32 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 24 août 2008
23 avril 2005 à 17:33
je n'y comprend pas grand chose mais est ce que quelqu'un a un petit exemple (ouvrir le serveur, lister les fichiers et pouvoir en ajouter)

Merci !
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
4 avril 2005 à 19:13
Salut NeoMetaller
D'apès ce que j'ai pu trouvé sur cette erreur, il smble que cela vienne d'une incompatibilité de langue.
Est ce que ton Excel (ou autre) est un US ?
Car dans ce cas, la DLL compilée ici en FR peut poser problème.
Deux solutions :
- Recompiler la DLL avec ton VB6 US
- Utiliser les classes/modules de la DLL directement dans ton VBA : Voir réponse à Mercury ci-dessus + dans l'éditeur de macro de VBA, dans la fenêtre qui liste les feuilles : Click-droit Insertion Module puis Module de Classe
Utilisateur anonyme
4 avril 2005 à 17:14
lConn = TemplateFTP.Connect("mon serveur", "login", "pass")

à cette instruction, VBA plante et me met une erreur 50002 sans plus !!

une idée ??
azehaf Messages postés 1 Date d'inscription samedi 15 novembre 2003 Statut Membre Dernière intervention 3 mars 2005
3 mars 2005 à 13:18
Excellent rien a dire!
Nightcourrier Messages postés 118 Date d'inscription dimanche 12 octobre 2003 Statut Membre Dernière intervention 28 mars 2008
19 janv. 2005 à 21:22
Super cette source !,

Ya p-e des gens d'entre vous qui pourraient me répondre j'essais de me connecter à une base de données qui est sur un serveur savez vous comment je pourrais efectuer cela ?
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
15 nov. 2003 à 16:52
>>aminert2100 : le projet de démo est là pour te répondre. Il utilise la DLL comme une DLL externe
>>Mercury : Oui, il suffit d'intégrer à ton projet la classe et le module et de dimensionner un objet Dim MonFTP as new clsTemplateFTP
cs_Mercury Messages postés 329 Date d'inscription jeudi 3 janvier 2002 Statut Membre Dernière intervention 7 octobre 2005
8 sept. 2003 à 09:44
Vraiment top, ça marche impec ! 10/10
Par contre, est-il possible d'intégrer le contenu de la DLL (fichier .bas et .cls) dans un le projet exemple. J'aimerai me passer de la dll en intégrant les fonctions directement dans mon prog ? Si oui, comment ? J'ai essayé, mais j'ai des erreurs de déclarations, de type ... :-(

Merci d'avance de ta réponse.
aminert2100 Messages postés 82 Date d'inscription dimanche 15 juin 2003 Statut Membre Dernière intervention 8 mai 2008
7 sept. 2003 à 15:29
Merci , mais comment utiliser hConnectHandle dans u projet externe
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
28 août 2003 à 19:53
Salut Aminert2100 (quel pseudo)
hConnectHandle est une valeur de type Long qui est renvoyé par des fonctions pour s'identifier. Chaque objet (dans Windows) à un Handle.

Pour cette application et ma démo, tu verras que la variable "lConn" est utilisée à chaque fois que l'on fait appel à la DLL. C'est la valeur qu'a retourner la fonction Connect de la DLL = le fameux Handle.
Vala
aminert2100 Messages postés 82 Date d'inscription dimanche 15 juin 2003 Statut Membre Dernière intervention 8 mai 2008
26 août 2003 à 12:58
c koi hConnectHandle ?
TTMan Messages postés 104 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 12 février 2007
20 août 2003 à 17:45
Bien, c'est exactement ce que je cherchais!!! Merci!
Rejoignez-nous