File Upload Using FtpWebRequest

File Upload Using FtpWebRequest

namespaces to be added:
using System.Net
using System.IO

1.Create an FtpWebRequest object over an ftp server Uri
2.Set the ftp method to execute (upload)
3.Set options(ssl support, transfer as binary/not etc.) for the ftp webrequest.
4.Set the login credentials(username, password)
5.Execute the request.
6.Close the FTP Request, and the file streams.

In the following code the file to upload, the uri and the network credentials are provided as an example.
        protected void Submit1_ServerClick(object sender, EventArgs e)
       {
        string filename = “C:\\test.txt”;
        Upload(filename);
       }
      
        private void Upload(string filename)
        {
            FileInfo fileInf = new FileInfo(filename);
            FtpWebRequest reqFTP;
   
            // Create FtpWebRequest object from the Uri provided
            reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(”ftp://ftp.xyz.com/” + fileInf.Name));
      
            // Provide the WebPermission Credintials
            reqFTP.Credentials = new NetworkCredential(”user1″, “pass”);
           
            //use proxy
            reqFTP.Proxy = null;
   
            // 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, “Upload Error”);     
               return;
            }
        }

Leave a Reply


All material @ copyrighted by chrisranjana.com. If you want to link to this article you are welcome to do so. Unauthorized publication is strictly prohibited. This developer tutorial website contains articles by Php programmers , Software developers, Mysql programmers and asp c# programmers. This website also contains ajax tutorials and advanced mysql sql stored procedures and functions tutorials and sample codes.