Talk:Internet Transfer Control in VB6: Difference between revisions
Jump to navigation
Jump to search
frmFTP |
No edit summary |
||
| Line 1: | Line 1: | ||
<nowiki>i ' Here's the code for frmFTP</nowiki> | |||
<nowiki></nowiki> | |||
<nowiki>Option Explicit</nowiki> | |||
<nowiki></nowiki> | |||
Option Explicit | <nowiki>Private msCurrentFile As String</nowiki> | ||
<nowiki> </nowiki> | |||
Private msCurrentFile As String | <nowiki>Friend Sub FTPFile(ByVal sFTPServer As String, _</nowiki> | ||
<nowiki> ByVal sFTPCommand As String, _</nowiki> | |||
Friend Sub FTPFile(ByVal sFTPServer As String, _ | <nowiki> ByVal sFTPUser As String, _</nowiki> | ||
<nowiki> ByVal sFTPPwd As String, _</nowiki> | |||
<nowiki> ByVal sFTPSrcFileName As String, _</nowiki> | |||
<nowiki> ByVal sFTPTgtFileName As String)</nowiki> | |||
<nowiki> </nowiki> | |||
<nowiki> Dim oFS As Scripting.FileSystemObject</nowiki> | |||
<nowiki> Dim sURL As String</nowiki> | |||
<nowiki> </nowiki> | |||
<nowiki> On Error GoTo FTPFileExit</nowiki> | |||
<nowiki> </nowiki> | |||
<nowiki> Me.HRG True</nowiki> | |||
<nowiki> msCurrentFile = ""</nowiki> | |||
<nowiki> </nowiki> | |||
<nowiki> Set oFS = New Scripting.FileSystemObject</nowiki> | |||
<nowiki> </nowiki> | |||
<nowiki> sURL = "ftp://" & sFTPServer</nowiki> | |||
<nowiki> </nowiki> | |||
<nowiki> Inet1.Protocol = icFTP</nowiki> | |||
<nowiki> Inet1.RequestTimeout = 60</nowiki> | |||
<nowiki> Inet1.RemotePort = 21</nowiki> | |||
<nowiki> Inet1.AccessType = icDirect</nowiki> | |||
<nowiki> Inet1.URL = sURL</nowiki> | |||
<nowiki> Inet1.UserName = sFTPUser</nowiki> | |||
<nowiki> Inet1.Password = sFTPPwd</nowiki> | |||
<nowiki> </nowiki> | |||
<nowiki> </nowiki> | |||
<nowiki> Select Case sFTPCommand</nowiki> | |||
<nowiki> </nowiki> | |||
<nowiki> Case "PUT"</nowiki> | |||
<nowiki> </nowiki> | |||
<nowiki> msCurrentFile = sFTPSrcFileName</nowiki> | |||
<nowiki> If oFS.FileExists(sFTPSrcFileName) = False Then GoTo FTPFileExit</nowiki> | |||
<nowiki> Inet1.Execute sURL, sFTPCommand & Space(1) & sFTPSrcFileName & " " & sFTPTgtFileName</nowiki> | |||
<nowiki> </nowiki> | |||
<nowiki> Case "GET"</nowiki> | |||
<nowiki> </nowiki> | |||
<nowiki> msCurrentFile = sFTPTgtFileName</nowiki> | |||
<nowiki> If oFS.FileExists(sFTPTgtFileName) = True Then </nowiki> | |||
<nowiki> oFS.DeleteFile sFTPTgtFileName, True</nowiki> | |||
<nowiki> end if</nowiki> | |||
<nowiki> Inet1.Execute sURL, sFTPCommand & Space(1) & sFTPSrcFileName & " " & sFTPTgtFileName</nowiki> | |||
<nowiki> </nowiki> | |||
<nowiki> End Select</nowiki> | |||
<nowiki> </nowiki> | |||
<nowiki> </nowiki> | |||
<nowiki> Me.WaitForResponse</nowiki> | |||
<nowiki> Inet1.Execute sURL, "quit"</nowiki> | |||
<nowiki> Me.WaitForResponse</nowiki> | |||
<nowiki> </nowiki> | |||
<nowiki> </nowiki> | |||
<nowiki>FTPFileExit:</nowiki> | |||
<nowiki> Set oFS = Nothing</nowiki> | |||
FTPFileExit: | <nowiki> HRG False</nowiki> | ||
Set oFS = Nothing | <nowiki>End Sub</nowiki> | ||
HRG False | <nowiki> </nowiki> | ||
End Sub | <nowiki></nowiki> | ||
<nowiki>Friend Sub WaitForResponse()</nowiki> | |||
<nowiki></nowiki> | |||
Friend Sub WaitForResponse() | <nowiki> Dim fWait As Boolean</nowiki> | ||
<nowiki> </nowiki> | |||
Dim fWait As Boolean | <nowiki> On Error GoTo ErrHandler</nowiki> | ||
<nowiki> </nowiki> | |||
On Error GoTo ErrHandler | <nowiki> fWait = True</nowiki> | ||
<nowiki> Do Until fWait = False</nowiki> | |||
fWait = True | <nowiki> DoEvents</nowiki> | ||
Do Until fWait = False | <nowiki> fWait = Inet1.StillExecuting</nowiki> | ||
<nowiki> Loop</nowiki> | |||
<nowiki> </nowiki> | |||
Loop | <nowiki>ErrHandler:</nowiki> | ||
<nowiki> Err.Clear</nowiki> | |||
ErrHandler: | <nowiki>End Sub</nowiki> | ||
Err.Clear | <nowiki> </nowiki> | ||
End Sub | <nowiki>Private Sub Inet1_StateChanged(ByVal State As Integer)</nowiki> | ||
<nowiki> </nowiki> | |||
Private Sub Inet1_StateChanged(ByVal State As Integer) | <nowiki> On Error Resume Next</nowiki> | ||
<nowiki> </nowiki> | |||
<nowiki> Select Case State</nowiki> | |||
<nowiki> Case icNone</nowiki> | |||
<nowiki> Case icResolvingHost: Me.lblRESPONSE.Caption = "Resolving Host"</nowiki> | |||
<nowiki> Case icHostResolved: Me.lblRESPONSE.Caption = "Host Resolved"</nowiki> | |||
<nowiki> Case icConnecting: Me.lblRESPONSE.Caption = "Connecting..."</nowiki> | |||
<nowiki> Case icConnected: Me.lblRESPONSE.Caption = "Connected"</nowiki> | |||
<nowiki> Case icResponseReceived: Me.lblRESPONSE.Caption = "Transferring File..."</nowiki> | |||
<nowiki> Case icDisconnecting: Me.lblRESPONSE.Caption = "Disconnecting..."</nowiki> | |||
<nowiki> Case icDisconnected: Me.lblRESPONSE.Caption = "Disconnected"</nowiki> | |||
<nowiki> Case icError: MsgBox "Error:" & Inet1.ResponseCode & " " & Inet1.ResponseInfo</nowiki> | |||
<nowiki> Case icResponseCompleted: Me.lblRESPONSE.Caption = "Process Complete."</nowiki> | |||
<nowiki> End Select</nowiki> | |||
<nowiki> </nowiki> | |||
<nowiki> Me.lblRESPONSE.Refresh</nowiki> | |||
<nowiki> </nowiki> | |||
<nowiki> Err.Clear</nowiki> | |||
<nowiki> </nowiki> | |||
<nowiki>End Sub</nowiki> | |||
<nowiki></nowiki> | |||
End Sub | <nowiki>Friend Sub HRG(fShowHourGlass As Boolean)</nowiki> | ||
<nowiki></nowiki> | |||
Friend Sub HRG(fShowHourGlass As Boolean) | <nowiki> If fShowHourGlass = True Then</nowiki> | ||
<nowiki> Screen.MousePointer = 11</nowiki> | |||
<nowiki> Else</nowiki> | |||
<nowiki> Screen.MousePointer = 0</nowiki> | |||
<nowiki> End If</nowiki> | |||
<nowiki> </nowiki> | |||
<nowiki>End Sub</nowiki> | |||
<nowiki> </nowiki> | |||
End Sub | <nowiki>Private Sub Form_Unload(Cancel As Integer)</nowiki> | ||
<nowiki> Set frmFTP = Nothing</nowiki> | |||
Private Sub Form_Unload(Cancel As Integer) | <nowiki>End Sub</nowiki> | ||
Set frmFTP = Nothing | <nowiki></nowiki> | ||
End Sub | <nowiki></nowiki> | ||
<nowiki> ' Here's the code for FTPMain.bas</nowiki> | |||
<nowiki> ' Remember to set your project start up to Sub Main()</nowiki> | |||
<nowiki></nowiki> | |||
<nowiki> Public Sub Main()</nowiki> | |||
<nowiki> Load frmFTP</nowiki> | |||
<nowiki> frmFTP.Show</nowiki> | |||
<nowiki> frmFTP.FTPFile "my ip address", "PUT", "myuser", "mypwd", "C:\temp\test.txt", "test.txt"</nowiki> | |||
<nowiki> frmFTP.FTPFile "my ip address", "GET", "myuser", "mypwd", "test.txt", "c:\temp\test2.txt"</nowiki> | |||
<nowiki> Unload frmFTP</nowiki> | |||
<nowiki> End Sub</nowiki> | |||
Latest revision as of 05:36, 7 February 2008
i ' Here's the code for frmFTP
Option Explicit
Private msCurrentFile As String
Friend Sub FTPFile(ByVal sFTPServer As String, _
ByVal sFTPCommand As String, _
ByVal sFTPUser As String, _
ByVal sFTPPwd As String, _
ByVal sFTPSrcFileName As String, _
ByVal sFTPTgtFileName As String)
Dim oFS As Scripting.FileSystemObject
Dim sURL As String
On Error GoTo FTPFileExit
Me.HRG True
msCurrentFile = ""
Set oFS = New Scripting.FileSystemObject
sURL = "ftp://" & sFTPServer
Inet1.Protocol = icFTP
Inet1.RequestTimeout = 60
Inet1.RemotePort = 21
Inet1.AccessType = icDirect
Inet1.URL = sURL
Inet1.UserName = sFTPUser
Inet1.Password = sFTPPwd
Select Case sFTPCommand
Case "PUT"
msCurrentFile = sFTPSrcFileName
If oFS.FileExists(sFTPSrcFileName) = False Then GoTo FTPFileExit
Inet1.Execute sURL, sFTPCommand & Space(1) & sFTPSrcFileName & " " & sFTPTgtFileName
Case "GET"
msCurrentFile = sFTPTgtFileName
If oFS.FileExists(sFTPTgtFileName) = True Then
oFS.DeleteFile sFTPTgtFileName, True
end if
Inet1.Execute sURL, sFTPCommand & Space(1) & sFTPSrcFileName & " " & sFTPTgtFileName
End Select
Me.WaitForResponse
Inet1.Execute sURL, "quit"
Me.WaitForResponse
FTPFileExit:
Set oFS = Nothing
HRG False
End Sub
Friend Sub WaitForResponse()
Dim fWait As Boolean
On Error GoTo ErrHandler
fWait = True
Do Until fWait = False
DoEvents
fWait = Inet1.StillExecuting
Loop
ErrHandler:
Err.Clear
End Sub
Private Sub Inet1_StateChanged(ByVal State As Integer)
On Error Resume Next
Select Case State
Case icNone
Case icResolvingHost: Me.lblRESPONSE.Caption = "Resolving Host"
Case icHostResolved: Me.lblRESPONSE.Caption = "Host Resolved"
Case icConnecting: Me.lblRESPONSE.Caption = "Connecting..."
Case icConnected: Me.lblRESPONSE.Caption = "Connected"
Case icResponseReceived: Me.lblRESPONSE.Caption = "Transferring File..."
Case icDisconnecting: Me.lblRESPONSE.Caption = "Disconnecting..."
Case icDisconnected: Me.lblRESPONSE.Caption = "Disconnected"
Case icError: MsgBox "Error:" & Inet1.ResponseCode & " " & Inet1.ResponseInfo
Case icResponseCompleted: Me.lblRESPONSE.Caption = "Process Complete."
End Select
Me.lblRESPONSE.Refresh
Err.Clear
End Sub
Friend Sub HRG(fShowHourGlass As Boolean)
If fShowHourGlass = True Then
Screen.MousePointer = 11
Else
Screen.MousePointer = 0
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set frmFTP = Nothing
End Sub
' Here's the code for FTPMain.bas
' Remember to set your project start up to Sub Main()
Public Sub Main()
Load frmFTP
frmFTP.Show
frmFTP.FTPFile "my ip address", "PUT", "myuser", "mypwd", "C:\temp\test.txt", "test.txt"
frmFTP.FTPFile "my ip address", "GET", "myuser", "mypwd", "test.txt", "c:\temp\test2.txt"
Unload frmFTP
End Sub