The server returned an address in response to the PASV command that is different than the address to which the FTP connection was made.
I was using the VB.net My namespace,
My.Computer.Network.UploadFile("C:\SomeFile.txt", "ftp://ftpsite/somefile.txt", "userid", "pwd")So I Googled about that error and found some dicussion on MSDN forums.
Then I modified and created my own upload function as,
Private Sub UploadFile(ByVal sDestination As String, ByVal sSource As String, ByVal sUserID As String, ByVal sPassword As String)
Dim i As System.Net.FtpWebRequest
Dim us As System.IO.Stream
Dim filebytes As Byte()
' create the FTP Web Request
i = System.Net.WebRequest.Create(sDestination)
' set credentials
i.Credentials = New System.Net.NetworkCredential(sUserID, sPassword)
' method = Upload File
i.Method = System.Net.WebRequestMethods.Ftp.UploadFile
i.UsePassive = False
i.Proxy = Nothing
' get the Request Stream
us = i.GetRequestStream()
' get the file bytes from source
filebytes = My.Computer.FileSystem.ReadAllBytes(sSource)
' write the bytes in stream
us.Write(filebytes, 0, filebytes.Length)
' close the stream
us.Close()
End Sub
Warning! Above function will read all the bytes (in one go) from file. Which is NOT a good practice for larger files.
No comments:
Post a Comment