Modules:
Bibliothèque pour le transfert de données via Internet |
Author(s) Dev Ashish |
|
Bibliothè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 référer à l'intérieur de vos
projets. La librairie utilise les fonctions API de WinInet.dll
qui est typiquement installée avec Microsoft Internet Explorer.
InetTransferLib expose deux objets, HTTP et FTP. L'utilisation de
ces objets dépend du protocole de transfert 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
en choississant la librairie.
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'importer 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 examiner sans avoir à créer de ficher local.
L'objet peut être utilisé comme suit, par exemple:
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
.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
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 connexion 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:
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"
.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
Pour un upload, vous pouvez utiliser l'objet FTP comme 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 assigné à Vrai, l'objet FT créera
automatiquement un dossier spécifié 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.
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
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.
|