Hit-Parade .VB Research Center . Compteur
Accueil ~  Code ~  Programmes ~  Api ~  Forum ~  Cours ~  Livres ~  Quiz ~  Annuaire
~ 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 ~
 Rechercher un site :
  

~ Partenaires ~

Fonction : PutFtpFile
Cette fonction permet d'envoyer un fichier vers un serveur FTP.
(Consulté 20398 fois.)

Public Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" ( _
                   
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
Visual Basic Research Center - (c) 2000/2002 -  Webmaster : docvb (chez) free (point) fr