INFORMATION PROVIDED IN THIS DOCUMENT AND THE INTERNET DATA TRANSFER LIBRARY ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED. THE USER ASSUMES THE ENTIRE RISK OF RUNNING THIS SOFTWARE.
© Dev Ashish (1998-2004), All Rights Reserved
The InetTransferLib can be used to transfer binary or text files to and from web servers which support HTTP and FTP protocols.
The library is distributed as a Microsoft Access 97 Addin (MDA) file which can be referenced in your projects. It uses the API functions stored in
WinInet.dll which is installed by Microsoft Internet Explorer.
To use this functionality in Microsoft Access 2000 or higher, please
import all the classes from the addin (which does not have the tables required
for a typical Access addin) in your own Access project. To use the classes, just
refer to them with the 'InetTransferLib.' prefix (eg: Dim objHTTP As HTTP)
The InetTransferLib exposes two object, HTTP and FTP. The use of the objects will be dependent on the protocol through which you wish to transfer files.
The documentation for individual methods and properties for the objects can be viewed by bringing up the Object Browser and selecting the library.
An additional database, InetTransfer Sample.mdb, is included in the zip file to provide usage samples.
When using the exposed objects, you must include error handling in your code.
If you need to import the objects into your database, make sure you import the cDialog class as well.
Download
InetTransferLib.zip (327,680 bytes)
|
A beta version of version 2 of the library, wrapped in a
VB 6 COM object, is also available for download. Please note
that this version has not been fully tested and is as unsupported as
the previous version. But, it does offer more
functionality, like:
- HTTP: Reading, or saving, the entire HTML as a string
or a file.
- HTTP: SSL support.
- HTTP: Querying for header information.
- HTTP: Adding custom headers
- HTTP: POST support.
- FTP: Create remote directory
- FTP: Delete remote file
- FTP: Rename remote file
- FTP: Enumerate remote folders
Please see the test project for code samples on how to use the
class.
Download
InternetTransferLib.zip; Beta version. (Requires VB 6 Runtime) |
|
HTTP
-------
The HTTP object provides download only capabilities and can be used to download a file from any HTTP server, provided that you know the correct URL.
If you do not provide a DestinationFile for the object, and set the
PromptWithCommonDialog property to True, the object will bring up the standard Windows
GetSaveFileName dialog so that you can specify the local file name.
If you are not connected to a network and are using Windows Dial Up Networking to establish a TCP/IP connection, you can additionally check for a live connection by checking the
IsConnected property.
You can also retrieve the text from a target HTML or text file by using the
WriteHTTPDataToString method. This method will return the contents of the specified URL in string format so that you can parse out the results without creating a local file.
The object can be used as
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
-----
The FTP object provides both download and upload capabilities against a server which supports FTP capabilities.
If you do not provide a DestinationFile/SourceFile for the object, and set the
PromptWithCommonDialog property to True, the object will bring up the standard Windows
GetSaveFileName/GetOpenFileName dialog respectively so that you can specify the local file name.
If you are not connected to a network and are using Windows Dial Up Networking to establish a TCP/IP connection, you can additionally check for a live connection by checking the
IsConnected property.
The object can be used to download a file from a FTP server as
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
For file uploading, you can use the FTP object as follows. Note that setting SourceFile property to vbNullString will bring up the standard Windows GetOpenFileName dialog so that you or the user may select the file to upload to the FTP Server.
You must supply the Username and Password arguments of the ConnectToFTPHost method to ensure successful login to the server.
Under most circumstances, the UserName argument automatically sets the home directory on the server. Therefore, you would not need to include the user's home directory in
DestinationFile property. For example, if you want to transfer a file "something.txt" to your home directory at server ftp.someServer.com, the
DestinationFile property should be "/something.txt" instead of "/YourUserName/something.txt".
If the AutoCreateRemoteDir property is set to True, the FTP Object will automatically create any folders specified in
DestinationFile property, otherwise a runtime error will be raised if the object does not find the specified folder in the server's login home directory. The check is performed once for each folder specified in
DestinationFile property.
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 Information
---------------------------
If you have any comments or suggestions then you can
contact me.
|