08 July, 2012

Simple File Upload using FTP and C#.NET

using System.Net;
using System.IO;

private void UploadToFTP(string filename)
{
    try
    {
       FileInfo fileInf = new FileInfo(filename);
       string uri = ftpAddress + fileInf.Name;
       FtpWebRequest reqFTP;
       // Create FtpWebRequest object from the Uri provided
 reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpAddress
+ fileInf.Name));
       // Provide the WebPermission Credintials
       reqFTP.Credentials = new NetworkCredential(ftpUser,ftpPassword);
       // By default KeepAlive is true, where the control connection is
       // not closed after a command is executed.
       reqFTP.KeepAlive = false;
       // Specify the command to be executed.
       reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
       // Specify the data transfer type.
       reqFTP.UseBinary = true;
       // Notify the server about the size of the uploaded file
       reqFTP.ContentLength = fileInf.Length;
       // The buffer size is set to 2kb
       int buffLength = 2048;
       byte[] buff = new byte[buffLength];
       int contentLen;
       // Opens a file stream (System.IO.FileStream) to read
       //the file to be uploaded
       FileStream fs = fileInf.OpenRead();
       try
       {
          // Stream to which the file to be upload is written
          Stream strm = reqFTP.GetRequestStream();
          // Read from the file stream 2kb at a time
          contentLen = fs.Read(buff, 0, buffLength);
          // Till Stream content ends
          while (contentLen != 0)
          {
               // Write Content from the file stream to the
               // FTP Upload Stream
               strm.Write(buff, 0, contentLen);
               contentLen = fs.Read(buff, 0, buffLength);
          }
          // Close the file stream and the Request Stream
          strm.Close();
          fs.Close();
       }
       catch (Exception ex)
       {
            //MessageBox.Show(ex.Message, "FTP File Upload Error");
            throw new Exception(ex.Message);
       }
    }
    catch (Exception ex)
    {
      //MessageBox.Show(ex.Message, "FTP File Upload Error");
      throw new Exception(ex.Message);
    }
 }



N.B.: Make sure that u have proper permission to create file in FTP. 
address like: ftp://1.1.1.1/fileFolder/

No comments:

Post a Comment