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 FtpPutFile

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
Versions :
. Windows 95/98 : Oui
. Windows NT : A partir de 4.0
. Windows 2000/XP : Oui

Description :
Envoie un fichier sur un serveur FTP.
hFtpSession est un pointeur vers une session FTP.
lpszLocalFile est le nom du fichier local. Il est peut être complet, sinon, le fichier sera pris dans le répertoire courant local.
lpszRemoteFile est le nom que prendra le fichier sur le serveur FTP (peut contenir le chemin complet).
dwFlags contient le type de transfert à effectuer :
FTP_TRANSFERT_TYPE_ASCII = &H1
FTP_TRANSFERT_TYPE_BINARY = &H2
dwContext est un pointeur vers une fonction de rappel (callback).

La fonction API retourne Faux si elle échoue, sinon Vrai.

Exemple d'utilisation :

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

Retour à la liste des API

Visual Basic Research Center - (c) 2000/2002 -  Webmaster : docvb (chez) free (point) fr