C# Dosya Yükleme

Merhabalar, C# derslerimize kaldığımız yerden devam ediyoruz. Bu dersimizde FTP’ye dosya yüklemeyi anlatacağım. Hadi başlayalım !
Öncelikle Visual Studio aracılığıyla bi tane proje oluşturalım, Windows Forms yada Console farketmez.
İşimiz FTP yani sunucularla olduğu için C#’ta bunun için geliştirilmiş olan System.Net kütüphanesini kullanacağız. Elbette bu kütüphaneyi kod yazacağımız sayfada çağırmamız gerekiyor. Bunun için sayfanın en başına
using System.Net;
kod satırını ekleyelim.
Dosya yüklemek için WebClient sınıfını kullanacağız ve bu sınıfın yeni bir nesnesini türetmemiz gerekiyor. Constructor yani yapıcı metod ise herhangi bir parametre istemiyor.
WebClient client = new WebClient();
Sunucuya dosya yükleyebilmemiz için öncelikle sunucuya giriş yapmamız gerekiyor ve bunu da türettiğimiz client nesnesi altında bulunan Credentials propertisi ile yapıyoruz. Bu property sayesinde sunucuya giriş bilgilerimizi belirtiyoruz ve NetworkCredential tipinde yeni bir nesne belirtmemiz gerekiyor.
NetworkCredential nesnesi türetmek için de kullanıcı adı ve şifre bilgilerini parametre olarak göndermemiz gerekiyor. Bu sayede dosya yüklerken öncelikle belirttiğimiz kullanıcı adı ve şifre ile sunucuya giriş yapılıyor ve sonrasında dosya yüklemesi yapılıyor.
client.Credentials = new NetworkCredential("kullanıcı adı", "şifre");
Evet sunucuya giriş bilgilerimizi de belirttik, e artık dosyamızı yükleyelim. Bunun için yine türettiğimiz client nesnesi içerisinde bulunan UploadFile() fonksiyonunu kullanacağız. Bu fonksiyon ise Uri tipinde dosyanın sunucudaki adı ve string tipte dosyanın yerel adı olmak üzere 2 parametre istiyor. Farkettiyseniz yükleyeceğimiz sunucuyu hiç söylememiştik, işte burda belirteceğiz. Dosyanın sunucudaki adıdan kastettiğim de bu. Yani örneğin masaüstünde bulunan deneme.txt isimli dosyayı site.com/dosyalar adresine deneme.txt ismiyle kaydedelim.
Dikkat etmemiz gereken şey, birinci parametre olan dosyanın sunucudaki adı ftp:// ile başlamalı. Çünkü sonuçta sunucuya yükleme yapacağız, o yüzden yükleme adresimizi FTP cinsinden belirtmemiz gerekiyor. Yani birinci parametre ftp://site.com/dosyalar/deneme.txt ve ikinci parametre ise c:/users/kullanici/desktop/deneme.txt olmalıdır. Kodumuz ise şöyle olmalı;
client.UploadFile(new Uri("ftp://site.com/dosyalar/deneme.txt"), "c:/users/kullanici/desktop/deneme.txt");
Yükleyeceğimiz dosyayı sunucuya aynı isimle yüklememiz şart değil, yani deneme.txt isimli dosyayı istersek blabla.txt ismiyle de kaydedebiliriz, bu isim size kalmış. Evet projeyi çalıştırıp baktığımızda dosyanın sunucuya yüklendiğini göreceğiz. Bu dersimizde bu kadardı, yazdığımız kodları daha toplu olması için aşağıya bırakıyorum;
WebClient client = new WebClient();
client.Credentials = new NetworkCredential("kullanıcı adı", "şifre");
client.UploadFile(new Uri("ftp://site.com/dosyalar/deneme.txt"), "c:/users/kullanici/desktop/deneme.txt");
Tüm C# derslerimize buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.