FtpWebRequest

 Rate It (10)

FtpWebRequest

The FtpWebRequest class enables you to programatically create FTP connections to FTP Servers and transfer files.  If you are interested in using the FtpWebRequest class to upload files to a server, here is a code sample:

FtpWebRequest ftpRequest;

FtpWebResponse ftpResponse;

 

try

{

    //Settings required to establish a connection with the server

    this.ftpRequest = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://ServerIP/FileName"));

    this.ftpRequest.Method = WebRequestMethods.Ftp.UploadFile;

    this.ftpRequest.Proxy = null;

    this.ftpRequest.UseBinary = true;

    this.ftpRequest.Credentials = new NetworkCredential("UserName", "Password");

 

    //Selection of file to be uploaded

    FileInfo ff = new FileInfo("File Local Path With File Name");//e.g.: c:\\Test.txt

    byte[] fileContents = new byte[ff.Length];

 

    //will destroy the object immediately after being used

    using (FileStream fr = ff.OpenRead())

    {

        fr.Read(fileContents, 0, Convert.ToInt32(ff.Length));

    }

 

    using (Stream writer = ftpRequest.GetRequestStream())

    {

        writer.Write(fileContents, 0, fileContents.Length);

    }

    //Gets the FtpWebResponse of the uploading operation

    this.ftpResponse = (FtpWebResponse)this.ftpRequest.GetResponse();

    Response.Write(this.ftpResponse.StatusDescription); //Display response

}

catch (WebException webex)

{

    this.Message = webex.ToString();

}

 
 

Links

http://msdn.microsoft.com/en-us/library/system.net.ftpwebrequest.aspx

 

Revision number 4, Thursday, June 05, 2008 9:05:50 PM by

Comments

The FTP upload issue is a popular question topic on the forums and this code block is an excellent solution for most people. It should be noted though that if this code is running in a code behind file on a remote web server it is not possible to upload the file from the client side. The FTP source files will be residing on the machine that is running this code. I noticed that this was a point of confusion for some users.

Is this a secure FTP? If I want to do secured ftp, which method I should use? THanks

FtpWebRequest has EnableSsl property that you can use it to secure it I think.

Thanks for this great piece of code. One important thing that is missing from this is a note about using "ftpRequest.UsePassive = false" if you have a firewall enabled on the FTP server.

Shortcuts

Table of Contents

Top Wiki Contributors

(last 30 days)

  1. ssg31415926 (7)
  2. vik20000in (2)
  3. sambeetpatra (1)
  4. Jos Branders (1)
  5. anonymouswrites (1)

Advertise Here

Microsoft Communities
Page view counter