---Soumis par Dev Ashish---
Bibilothèque pour le transfert de données via Internet.
L'INFORMATION PRÉSENTÉE DANS CE DOCUMENT ET DANS L'UTILITAIRE Internet Data Transfer EST SOUMISE TEL QUEL, SANS GARANTIE DE QUELQUE SORTE, IMPLICITE OU EXPLICITE. L'UTILISATEUR ASSUME L'ENTIÈRE RESPONSABILITÉ RELIÉE À L'UTILISATION DE CE LOGICIEL.
(c) Dev Ashish and Terry Kreft (1998-1999), Tout droit réservé
Le InetTransferLib peut être utilisé pour transférer des fichiers binaires ou du texte entre serveurs web qui supportent les protocoles HTTP et FTP.
La librairie est distribuée comme un Add-In de Microsoft Access 97 Addin (MDA), fichier auquel vous pouvez également reférer à l'intérieur de vos projets. La librairie utilise les fonctions API de WinInet.dll qui est typîquement installée avec Microsoft Internet Explorer.
InetTransferLib expose deux objets, HTTP et FTP. L'utilisation de ces objets dépend du protocole de tranfert que vous désirez utiliser.
La documentation pour les méthodes et propriétés de ces objets est disponible en utilisant le Object Browser (clé de fonction F2) et enchoississant la llibrairie.
Une base de données, InetTransfer Sample.mdb, est également incluse (fichier zip) pour fin d'illustration d'utilisation.
Lorsque vous utilisez un de ces objets, vous devez inclure la manipulation des erreurs à l'intérieur de votre code.
Si vous devez importer ces objets dans votre base de données, s'assurer également d'inmporter la classe cDialog.
Télécharger InetTransferLib.zip (327,680 bytes)
HTTP
-------
L'objet HTTP ne permet que d'amener des fichiers (download) depuis un serveur HTTP, en autant que vous possédiez son URL.
Si vous ne fournissez pas de fichier DestinationFile, et que vous assigniez la propriété PromptWithCommonDialog à Vrai, l'objet vous amène le dialogue standard de Windows GetSaveFileName, de sorte à obtenir à ce moment, un nom de fichier.
Si vous n'êtes pas connecté à un réseau et que vous utilisez Windows Dial Up Networking pour établir une connextio TCP/IP, vos pouvez vérifier si vous possédez actuellement un lien avec la propriété IsConnected.
Vous pouvez également amener le texte de la cible HTML, ou un fichier texte, en utilisant la méthode WriteHTTPDataToString. Cette méthode retourne le contenu du URL spécifié dans un format chaîne que vous pouvez exminer sans avoir à créer de ficher local.
L'objet peut être utilisé comme suit, par exemple:
'*********** Code Start ************* Sub TestHTTP() On Error GoTo ErrHandler Dim objHTTP As InetTransferLib.HTTP Const conTARGET = "http://www.mvps.org/access/acknowledge.htm" Set objHTTP = New InetTransferLib.HTTP With objHTTP .About .HttpURL = conTARGET '.DestinationFile = "j:\temp\test.htm" .PromptWithCommonDialog = True If .FileExists Then .OverwriteTarget = True If Not .IsConnected Then .DialDefaultNumber .ConnectToHTTPHost .WriteHTTPDataToFile End With ExitHere: On Error Resume Next Set objHTTP = Nothing Call SysCmd(acSysCmdRemoveMeter) Exit Sub ErrHandler: MsgBox Err.Number & vbCrLf & Err.Description, vbCritical + vbOKOnly, Err.Source Resume ExitHere End Sub '*********** Code End *************
FTP
-----
L'objet FTP fournit une possibilité bidirectionnelle (download et upload) avec un serveur FTP qui supporte ces possibilités.
Si vous ne fournissez pas de DestinationFile/SourceFile, et que le propriété PromptWithCommonDialog est assignée à vrai, l'objet vous demandera le nom du fichier local de par le dialogue standard de Windows GetSaveFileName/GetOpenFileName.
Si vous n'êtes pas connecté à un réseau et que vous utilisez Windows Dial Up Networking pour établir une connextio TCP/IP, vos pouvez vérifier si vous possédez actuellement un lien avec la propriété IsConnected.
L'objet peut être utilisé pour télécharger un fichier du serveur FTP comme suit:
'*********** Code Start ************ Sub TestFTP() On Error GoTo ErrHandler Dim objFTP As InetTransferLib.FTP Const conTARGET = "ftp://ftp.microsoft.com/softlib/softlib.exe" Set objFTP = New InetTransferLib.FTP With objFTP .UseProxy = True .FtpURL = conTARGET .DestinationFile = "h:\temp\test.exe" 'If .FileExists Then .OverwriteTarget = True .PromptWithCommonDialog = True If Not .IsConnected Then .DialDefaultNumber .ConnectToFTPHost .WriteFTPDataToFile End With ExitHere: On Error Resume Next Set objFTP = Nothing Call SysCmd(acSysCmdRemoveMeter) Exit Sub ErrHandler: MsgBox Err.Number & vbCrLf & Err.Description, vbCritical + vbOKOnly, Err.Source Resume ExitHere End Sub '********** Code End ****************
Pour un upload, vous pouvez utiliser l'objet FTP coome suit. Si la propriété SourceFile est vbNullString, vous avez droit au dialogue standard de Windows GetOpenFileName, de façon à choisir le nom du fichier à charger sur le serveur.
Vous devez fournir votre Username et Password à la méthode ConnectToFTPHost pour établir la connexion appropriée (login) sur le serveur.
Généralement, UserName détermine automatiquement le répertoire Home sur le serveur. Vous ne devez donc pas inclure ce répertoire dans la propriété DestinationFile. Par exemple, si vous désirez transférer le fichier "something.txt" à votre répertoire, sur le serveur, ftp.someServer.com, la DestinationFile doit être "/something.txt" et non pas "/YourUserName/something.txt".
Si AutoCreateRemoteDir est assingé à Vrai, l'objet FT créera automatiquement un dossier spédifié dans DestinationFile, autrement, une erreur précisant que le répertoire n'est pas trouvé sera levé lors de l'exécution. La vérification est effectuée pour chaque dossier spécifié dans DestinationFile.
'********** Code Start **************** Sub TestFTPUpload() On Error GoTo ErrHandler Dim objFTP As InetTransferLib.FTP Const conTARGET = "ftp://ftp.someserver.com" Set objFTP = New InetTransferLib.FTP With objFTP .FtpURL = conTARGET .SourceFile = vbNullString .DestinationFile = "/2/test.txt" .AutoCreateRemoteDir = True If Not .IsConnected Then .DialDefaultNumber .ConnectToFTPHost "username", "password" .UploadFileToFTPServer End With ExitHere: On Error Resume Next Set objFTP = Nothing Call SysCmd(acSysCmdRemoveMeter) Exit Sub ErrHandler: MsgBox Err.Number & vbCrLf & Err.Description, vbCritical + vbOKOnly, Err.Source Resume ExitHere End Sub '********** Code End ****************
Contact
---------------------------
Si vous avez des commentaires, rencontrez un bug, ou avez des suggestions, vous pouvez me contacter (en anglais), Terry Kreft à terry.kreft@mps.co.uk ou encore Dev Ashish à The Access Web, http://home.att.net/~dashish.