I’m trying to upload a file via FTP from my local computer to an FTP server, which is also on my local computer at the moment. I’ve got this sub I’m calling:
Public Sub UploadFTPFile(ByVal ftpservername, ByVal fullfilepath, ByVal filename, ByVal username, ByVal password)
Dim clsRequest As System.Net.FtpWebRequest = _
DirectCast(System.Net.WebRequest.Create("ftp://" & ftpservername & "/" & filename), System.Net.FtpWebRequest)
clsRequest.Credentials = New System.Net.NetworkCredential(username, password)
clsRequest.Method = System.Net.WebRequestMethods.Ftp.UploadFile
clsRequest.KeepAlive = False
' read in file...
Dim bFile() As Byte = System.IO.File.ReadAllBytes(fullfilepath)
' upload file...
Dim clsStream As System.IO.Stream = _
clsRequest.GetRequestStream()
clsStream.Write(bFile, 0, bFile.Length)
clsStream.Close()
clsStream.Dispose()
End Sub
When calling the sub, I do it like this:
UploadFTPFile("192.168.1.3/Temp", selectedSoundFileLong, OpenFileDialog.SafeFileName, "", "")
In other words, in the Sub, this string:
DirectCast(System.Net.WebRequest.Create("ftp://" & ftpservername & "/" & filename), System.Net.FtpWebRequest)
, creates the following:
DirectCast(System.Net.WebRequest.Create("ftp://192.168.1.3/Temp/test.mp3"), System.Net.FtpWebRequest)
And at this line in the sub:
Dim clsStream As System.IO.Stream = _
clsRequest.GetRequestStream()
This error occurs:
The remote server returned an error: (550) File unavailable
What could be the cause of this?
I’m running an FTP Server using Golder FTP Server, which is freeware.
I think it’s setup correctly because connecting to the FTP Server using the exact same string as above using Windows Explorer works great.
are you sure there is no extra white space in the webRequest string? I believe you would get this error if the string happened to be like “ftp://192.168.1.3/ Temp/test.mp3″ Also, check to make sure you have the correct privileges to write to that server. Additionally, make sure you file is test.mp3 and not test.MP3.