C# Dosya Yükleme

C# Dosya Yükleme

C# Dosya Yükleme

  3 dakika Okuma Süresi
Merhabalar, C# derslerimize kaldığımız yerden devam ediyoruz. Bu dersimizde FTP yani web sunucuya dosya yüklemeyi anlatacağım. Öncelikle sunucuyla bağlantı kuralım. Bunun için de System.Net kütüphanesi altında bulunan FtpWebRequest sınıfını kullanacağız.
Öncelikle bu sınıftan bir nesne türetip kullanıcı adı ve şifre ile sunucuya giriş yapacağız.Yeni bir nesne türetirken de parametre olarak ftp adresini vermemiz gerek.
Kısaca kodlarımız şöyle olmalı;
FtpWebRequest ftp = ( FtpWebRequest)FtpWebRequest.Create("ftp://siteadi.com");
ftp.Credentials = new NetworkCredential("kullanıcı adı", "şifre");
ftp.UsePassive = true;
ftp.UseBinary = true;
ftp.KeepAlive = false;
Evet sunucu ile bağlantıyı yaptık.
Yazdığımız kodlara bi göz atarsak, öncelikle FtpWebRequest nesnesi oluşturduk ve giriş bilgilerini tanıttık. UsePassive ile pasif olarak kullanmayı aktif ettik, UseBinary ile binary yükleme yapacağımızı bildirdik, KeepAlive ile de sürekli bağlantı yapmayı engelledik yani sadece yükleme aşamasında bağlantı yapıp aksi halde bağlantının kapatılmasını sağladık.

Evet şu ana kadar sunucuya giriş yaptık ama sunucuya ne iş yapacağımızı söylemedik. Yani sunucu bize "Niye geldin ?" diye soruyor ama biz henüz yanıt vermedik. Biz dosya yükleme işlemi yapacağımız için "Dosya yüklemek için geldim" dememiz gerekiyor, bunun için de WebRequestMethods kullanmamız gerekiyor. O da şöyle;
ftp.Method = WebRequestMethods.Ftp.UploadFile;
Artık sunucu bizi tanıyor, dosya yükleyeceğimizi de söyledik. E artık yükleme işlemine geçelim.
Tabi işin içinde dosya olduğu için System.IO kütüphanesi altında bulunan Stream ve FileStream kullanacağız.
Öncelikle FileStream ile dosyayı byte olarak okuyacak ve sonra da bu byteleri Stream ile sunucuya yükleme için göndereceğiz.
Teorinin pratiği şöyle;
FileStream fs = File.OpenRead("dosya.txt");
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
fs.Close();
Stream stream = ftp.GetRequestStream();
stream.Write(buffer, 0, buffer.Length);
stream.Close();
Bu kodlara göz attığımızda ise dosyayı FileStream ile byte olarak okuduk ve byte dizisine yükledik, ardından Stream ile de sunucuya yazdık. Son olarakta FileStream ve Stream nesnelerini kapatarak belleğe yazmayı durdurduk ve belleği (Ram) serbest bıraktık.

Evet bu dersimizde sunucuya dosya yüklemeyi anlattık, bu dersimizde bu kadardı. Tüm C# derslerimize ulaşmak için buraya tıklayabilirsiniz. Herkese hayırlı günler.


  • İçeriği Paylaş:

İÇERİĞİ DEĞERLENDİR

Toplam Değerlendirme Sayısı: 0
Toplam Değerlendirme: 0 / 5

Cevap Yaz