用VB創(chuàng)建FTP組件(put)

字號:

基本步驟是:
    1、調(diào)用InternetOpen函數(shù)設(shè)置環(huán)境。
    2、調(diào)用InternetConnect 函數(shù)連接主機。
    3、調(diào)用FtpPutFile 函數(shù)得到文件。
    4、用InternetCloseHandle 函數(shù)關(guān)閉第1、2步的句柄。
    當(dāng)使用FtpGetFile 時與上面的步驟看起來完全一樣。事實上的區(qū)別是在第3步中調(diào)用了FtpPutFile 。VB特定調(diào)用這一函數(shù)的聲明是:
    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
    第一個參數(shù)hFtpSession 是InternetConnect 調(diào)用返回的句柄值。
    lpszNewFile 和lpszRemoteFile 分別是本地機上的文件名和將在遠(yuǎn)程主機上創(chuàng)建的文件名。
    參數(shù)dwFlags 指定為1時,用ASCII 傳輸文件(A類傳輸方法),指定為2是用二進制傳輸文件(1類傳輸方法)。由于DIRMAP.TXT 是ASCII 文本文件,我們傳遞值1。
    最后,當(dāng)使用回叫信號時,lContext 用來識別應(yīng)用程序前后關(guān)系。因為在我們的例子中不使用回叫信號,所以這個值為0。
    以下是得到DIRMAP.TXT文件并將其存在 C:DIRMAP.TXT的調(diào)用。
    blnRC = FtpPutFile(lngINetConn, “c::dirmap.txt”, “dirmap.txt”, 1, 0)
    如果函數(shù)調(diào)用成功,blnRC為 True, 反之為False。
    可以看到,把文件放到FTP服務(wù)器上與從FTP服務(wù)器上得到文件一樣簡單??荚嚧筇崾荆耗涿脩魺o權(quán)在FTP服務(wù)器上創(chuàng)建文件。所以要確定用來與FTP服務(wù)器連接的用戶帳號要有創(chuàng)建文件的權(quán)限。不然的話,F(xiàn)tpPutFile函數(shù)調(diào)用就會返回False,說明Put 失敗了。