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;
}
}
