Uploading files greatly depends on what the server protocol is. If you're using HTTP, for example, the HttpWebRequest already supports this. Since you're requiring FTP, realize that the current .NET BCL has no FTP support - but don't let that stop you. Some articles on this site and others have simply wrapped the ftp.exe application in a class library. This is dodgy and not very well designed. A proper design - like HttpWebRequest and HttpWebResponse - would extend WebRequest and WebResponse, classes for pluggable protocols. It just so happens that there's a good example in the Microsoft Knowledge Base: http://support.microsoft.com/default.aspx?scid=kb%3BEN-US%3B812409[^]. It has a link at the bottom to GotDotNet (a Microsoft developer community site) with the full source. This posting is provided "AS IS" with no warranties, and confers no rights. Software Design Engineer Developer Division Sustained Engineering Microsoft [My Articles]