日期:2009-05-13  浏览次数:20898 次

基本步骤是:


1、调用InternetOpen函数设置环境。

2、调用InternetConnect 函数连接主机。

3、调用FtpPutFile 函数得到文件。

4、用InternetCloseHandle 函数关闭第1、2步的句柄。


  当使用FtpGetFile 时与上面的步骤看起来完全一样。事实上唯一的区别是在第3步中调用了FtpPutFile 。VB特定调用这一函数的声明是:


Private 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


  第一个参数hFtpSession 是InternetConnect 调用返回的句柄值。

  lpszNewFile 和lpszRemoteFile 分别是本地机上的文件名和将在远程主机上创建的文件名。

  参数dwFlags 指定为1时,用ASCII 传输文件(A类传输方法),指定为2是用二进制传输文件(1类传输方法)。由于DIRMAP.TXT 是ASCII 文本文件,我们传递值1。

  最后,当使用回叫信号时,lContext 用来识别应用程序前后关系。因为在我们的例子中不使用回叫信号,所以这个值为0。

  以下是得到DIRMAP.TXT文件并将其存在 C:\DIRMAP.TXT的调用。

blnRC = FtpPutFile(lngINetConn, “c::\dirmap.txt”, “dirmap.txt”, 1, 0)

  如果函数调用成功,blnRC为 True, 反之为False。

  你可以看到,把文件放到FTP服务器上与从FTP服务器上得到文件一样简单。有一点要注意,匿名用户无权在FTP服务器上创建文件。所以要确定用来与FTP服务器连接的用户帐号要有创建文件的权限。不然的话,FtpPutFile函数调用就会返回False,说明Put 失败了。