Uri FtpHost = new Uri("ftp://127.0.0.1/wrar351.exe"); //Have to include destination filename in Uri()
FtpWebRequest ftprq;
FtpWebResponse ftprp;
string FtpFileName=@"c:\wrar351.exe"; //upload a WinRar self-install file
ftprq = (FtpWebRequest)WebRequest.Create(FtpHost);
ftprq.EnableSsl = false;
ftprq.UseBinary = true;
ftprq.UsePassive = false;
ftprq.Method = WebRequestMethods.Ftp.UploadFile;
ftprq.Credentials = new NetworkCredential("username", "password");
Stream RequestStream = ftprq.GetRequestStream();
Console.WriteLine("Put file:" + FtpFileName);
using (FileStream fs = new FileStream(FtpFileName, FileMode.Open))
{
byte[] buf = new byte[4096];
int readcount = 0;
while ((readcount = fs.Read(buf, 0, 4096)) != 0)
{
RequestStream.Write(buf, 0, readcount);
Console.Write("*");
}
}
RequestStream.Close();
ftprp = (FtpWebResponse)ftprq.GetResponse();
if (ftprp.StatusCode != FtpStatusCode.ClosingData) //upload complete status is Closing Data
{
throw new IOException("Ftp upload Error: " + ftprp.StatusCode.ToString() + ftprp.StatusDescription);
}
Console.Write("\nFile Upload OK\n");
ftprp.Close();
return;