Visual Basic Code Snippet - Upload file to FTP Server
(VB) Visual Basic code snippet upload file to FTP Server. This method login to FTP server using username and password and upload the local file to given FTP location.
Bookmark:
Visual Basic Code Snippet - Upload file to FTP Server
This .Net Visual Basic code snippet upload file to FTP Server. To use this function simply provide the local file name to upload, upload path including host name, FTP username and FTP password. This function uses System.Net and System.IO namespaces to upload the file.
To upload file we create two streams, one for the FTP connection and another for the file we are reading from local disk to upload. These are the steps we take to upload a file: Create a FtpWebRequest object, set the FtpWebRequest.Method property to UploadFile, set the FtpWebRequest.Credentials property to our login information, get the request stream of the FtpWebRequest object. This is the stream we will write to, open the file we are going to upload and get a stream to its data, read the file data from the input stream and write it into the request stream and close the uploaded file stream and the request stream.
''' <summary>
''' Methods to upload file to FTP Server
''' </summary>
''' <param name="_FileName">local source file name</param>
''' <param name="_UploadPath">Upload FTP path including Host name</param>
''' <param name="_FTPUser">FTP login username</param>
''' <param name="_FTPPass">FTP login password</param>
Public Sub UploadFile(ByVal _FileName As String, ByVal _UploadPath As String, ByVal _FTPUser As String, ByVal _FTPPass As String)
Dim _FileInfo As New System.IO.FileInfo(_FileName)
' Create FtpWebRequest object from the Uri provided
Dim _FtpWebRequest As System.Net.FtpWebRequest = CType(System.Net.FtpWebRequest.Create(New Uri(_UploadPath)), System.Net.FtpWebRequest)
' Provide the WebPermission Credintials
_FtpWebRequest.Credentials = New System.Net.NetworkCredential(_FTPUser, _FTPPass)
' By default KeepAlive is true, where the control connection is not closed
' after a command is executed.
_FtpWebRequest.KeepAlive = False
' set timeout for 20 seconds
_FtpWebRequest.Timeout = 20000
' Specify the command to be executed.
_FtpWebRequest.Method = System.Net.WebRequestMethods.Ftp.UploadFile
' Specify the data transfer type.
_FtpWebRequest.UseBinary = True
' Notify the server about the size of the uploaded file
_FtpWebRequest.ContentLength = _FileInfo.Length
' The buffer size is set to 2kb
Dim buffLength As Integer = 2048
Dim buff(buffLength - 1) As Byte
' Opens a file stream (System.IO.FileStream) to read the file to be uploaded
Dim _FileStream As System.IO.FileStream = _FileInfo.OpenRead()
Try
' Stream to which the file to be upload is written
Dim _Stream As System.IO.Stream = _FtpWebRequest.GetRequestStream()
' Read from the file stream 2kb at a time
Dim contentLen As Integer = _FileStream.Read(buff, 0, buffLength)
' Till Stream content ends
Do While contentLen <> 0
' Write Content from the file stream to the FTP Upload Stream
_Stream.Write(buff, 0, contentLen)
contentLen = _FileStream.Read(buff, 0, buffLength)
Loop
' Close the file stream and the Request Stream
_Stream.Close()
_Stream.Dispose()
_FileStream.Close()
_FileStream.Dispose()
Catch ex As Exception
MessageBox.Show(ex.Message, "Upload Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
Here is a simple example showing how to use above method (UploadFile) to upload file to FTP Server.
' Upload file using FTP
UploadFile("c:\UploadFile.doc", "ftp://FTPHostName/UploadPath/UploadFile.doc", "UserName", "Password")
VB Keywords Used:
- FileInfo
- FtpWebRequest
- Credentials
- KeepAlive
- Timeout
- UploadFile
- UseBinary
- ContentLength
- FileStream
- Exception
Code Snippet Information:
- Applies To: Visual Studio, .Net, VB, Visual Basic, CLI, Upload File, FTP Server, FTP Upload, FTP, FTP Web Request, File Stream
- Programming Language : Visual Basic (VB)
External Resources:
Harshit :: December 17-2009 :: 05:46 AM
Great Code Its Working!!!!!!!!!!!
Mario :: June 16-2010 :: 01:42 PM
Very valuable code for me as a beginner. Thanks a lot!! (tested and works in VB 2010)
Don :: October 02-2011 :: 11:22 AM
How to use this with VBA is MS Excel?
Gary :: October 03-2011 :: 12:26 PM
Trying to apply this to a database upload. can you help me in this regard? Thank you