Home
Home

---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.

Download    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.