सबसे आसान उपाय
सबसे छोटी तरीका का उपयोग कर .NET फ़्रेमवर्क उपयोग कर रहा है एक FTP सर्वर पर एक फ़ाइल अपलोड करने WebClient.UploadFile
विधि :
WebClient client = new WebClient();
client.Credentials = new NetworkCredential("username", "password");
client.UploadFile("ftp://ftp.example.com/remote/path/file.zip", @"C:\local\path\file.zip");
उन्नत विकल्प
यदि आपको अधिक नियंत्रण की आवश्यकता है, WebClient
तो यह पेशकश नहीं करता है (जैसे टीएलएस / एसएसएल एन्क्रिप्शन , एएससीआईआई मोड, सक्रिय मोड, आदि), का उपयोग करें FtpWebRequest
। आसान तरीका सिर्फ FileStream
एक एफ़टीपी स्ट्रीम का उपयोग करके कॉपी करना है Stream.CopyTo
:
FtpWebRequest request =
(FtpWebRequest)WebRequest.Create("ftp://ftp.example.com/remote/path/file.zip");
request.Credentials = new NetworkCredential("username", "password");
request.Method = WebRequestMethods.Ftp.UploadFile;
using (Stream fileStream = File.OpenRead(@"C:\local\path\file.zip"))
using (Stream ftpStream = request.GetRequestStream())
{
fileStream.CopyTo(ftpStream);
}
प्रगति की निगरानी
यदि आपको किसी अपलोड प्रगति की निगरानी करने की आवश्यकता है, तो आपको सामग्री को स्वयं से चुनकर कॉपी करना होगा:
FtpWebRequest request =
(FtpWebRequest)WebRequest.Create("ftp://ftp.example.com/remote/path/file.zip");
request.Credentials = new NetworkCredential("username", "password");
request.Method = WebRequestMethods.Ftp.UploadFile;
using (Stream fileStream = File.OpenRead(@"C:\local\path\file.zip"))
using (Stream ftpStream = request.GetRequestStream())
{
byte[] buffer = new byte[10240];
int read;
while ((read = fileStream.Read(buffer, 0, buffer.Length)) > 0)
{
ftpStream.Write(buffer, 0, read);
Console.WriteLine("Uploaded {0} bytes", fileStream.Position);
}
}
GUI की प्रगति (WinForms ProgressBar
) के लिए, C # उदाहरण देखें:
हम FtpWRequest के साथ अपलोड के लिए प्रगति बार कैसे दिखा सकते हैं
फोल्डर अपलोड करना
यदि आप किसी फ़ोल्डर से सभी फ़ाइलों को अपलोड करना चाहते हैं, तो
WebClient का उपयोग करके FTP सर्वर पर फ़ाइलों की निर्देशिका अपलोड करें देखें ।
पुनरावर्ती अपलोड के लिए, C # में FTP सर्वर पर पुनरावर्ती अपलोड देखें