Link to home
Start Free TrialLog in
Avatar of hrolsons
hrolsonsFlag for United States of America

asked on

Send file via ftp in VB6

How could I send a file to an ftp server via VB6?  Is this possible?
Avatar of kbirecki
Flag of United States of America image

Like many things, there are multiple methods.  One would be to use shell commands, effectively sending your commands to a DOS command instance.  Probably not a fun way to do this.  Another way would be to use something like this class:

If that doesn't suit your needs, a quick Google search on "vb6 ftp" will turn up oodles of options.
Avatar of hrolsons


Thanks kbirecki, I did find that script you referenced, but saw the date of 2004 and was put off.  But, come to think of it, VB6 and 2004 go hand in hand.  Some day I'll move into the next generation, but for now, I'm comfortable.
same for me.  I still use it too.
Avatar of MedievalWarrior
Flag of United States of America image

Link to home
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of cool12399


You can do FTP in VB6. It is very easy.

Here is an example (taken from here:
Just plug & play.

'  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
    Inet1.Execute sURL, "quit"
  Set oFS = Nothing
  HRG False
End Sub

Friend Sub WaitForResponse()

  Dim fWait As Boolean
  On Error GoTo ErrHandler
  fWait = True
  Do Until fWait = False
        fWait = Inet1.StillExecuting
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
End Sub

Friend Sub HRG(fShowHourGlass As Boolean)

   If fShowHourGlass = True Then
      Screen.MousePointer = 11
      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.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

Open in new window

pps, please accept this question now, because that answers/helps. thanks!