~ Edito ~
12/03/2006 @ 13:39
Depuis la dernière mise à jour (qui remonte à... oulala plusieurs mois), un petit ménage de printemps s'impose. Ca tombe bien, c'est presque la période. Au menu, et progressivement sur les jours à venir, rafraîchissement de plusieurs fonctions et procédures, nouvelles APIs et nouveaux programmes. ~ Rechercher ~
~ Annuaire VB ~
~ Partenaires ~
|
Fonction : PutFtpFile ByVal sAgent As String, ByVal lAccessType As Long, _ ByVal sProxyName As String, _ ByVal sProxyBypass As String, ByVal lFlags As Long) As Long Public Declare Function InternetConnect Lib "wininet.dll" _ Alias "InternetConnectA" ( _ ByVal hInternetSession As Long, ByVal sServerName As String, _ ByVal nServerPort As Integer, ByVal sUsername As String, _ ByVal sPassword As String, ByVal lService As Long, _ ByVal lFlags As Long, ByVal lContext As Long) As Long Public Declare Function FtpSetCurrentDirectory Lib "wininet.dll" Alias _ "FtpSetCurrentDirectoryA" (ByVal hFtpSession As Long, _ ByVal lpszDirectory As String) As Boolean Public Declare Function FtpPutFile Lib "wininet.dll" Alias "FtpPutFileA" ( _ ByVal hFtpSession As Long, ByVal lpszLocalFile As String, _ ByVal lpszRemoteFile As String, _ ByVal dwFlags As Long, ByVal dwContext As Long) As Boolean Public Declare Function InternetCloseHandle Lib "wininet.dll" ( _ ByVal hInet As Long) As Integer Public Const INTERNET_DEFAULT_FTP_PORT = 21 Public Const INTERNET_SERVICE_FTP = 1 Public Enum eTRANSFERT_TYPE FTP_TRANSFER_TYPE_ASCII = &H1 FTP_TRANSFER_TYPE_BINARY = &H2 End Enum Private Function PutFtpFile(stServ As String, stLogin As String, stPass As String, _ stRepFtp As String, stFicFtp As String, _ stFicLocal As String, lgType As eTRANSFERT_TYPE) As Boolean ' Cette fonction charge un fichier local sur un serveur FTP. ' stServ contient le nom ou l'adresse IP du serveur FTP ' stLogin est le login à utiliser ' stPass est le mot de passe associé au login ' stRepFtp est le répertoire FTP ou sera placé le fichier ("/" pour la racine) ' stFicFtp est le nom qui sera donné au fichier sur le serveur ' stFicLocal est le chemin complet (+nom) du fichier local ' lgType est le type de transfert à utiliser (texte ou binaire) ' La fonction retourne Vrai si le transfert à réussi, sinon Faux. Dim lgFtp As Long, lgSession As Long, lgDir As Long Dim inRes As Integer Dim blOk As Boolean blOk = False ' Récupère un pointeur vers la connexion internet courante lgSession = InternetOpen("PutFtpFile", 1, vbNullString, vbNullString, 0) If lgSession Then ' Récupère un pointeur vers pour session FTP lgFtp = InternetConnect(lgSession, stServ, INTERNET_DEFAULT_FTP_PORT, _ stLogin, stPass, INTERNET_SERVICE_FTP, 0, 0) If lgFtp Then ' Positionne le répertoire distant If FtpSetCurrentDirectory(lgFtp, stRepFtp) Then ' Envoie le fichier blOk = FtpPutFile(lgFtp, stFicLocal, stFicFtp, _ FTP_TRANSFER_TYPE_ASCII, 0) End If End If ' Libération du pointeur inRes = InternetCloseHandle(lgFtp) End If ' Retourne le résultat PutFtpFile = blOk End Function |