Merhaba arkadaşlar,

FTP, yani Dosya Transfer Protokolünü (File Transfer Protocol) kullanarak web C# uygulamamız ile web sitemize dosya gönderme işlemini gerçekleştireceğiz.

Öncelikle FTP ile ilgili bilgi vermek istiyorum. FTP, yani File Transfer Protocol, internet bağlantısı olan iki bilgisayar arasında dosya aktarımı yapılmasını sağlayan bir protokoldür ve ilk kullanılan internet protokolleri arasındadır.

Dosya alışveriş işlemi sırasında iki bilgisayar arasında bağlantı kurulur ve bu protokolün sağladığı komutlar sayesinde bilgisayarlar arasında dosya alışverişi sağlanır.

Bu protokol, günümüzde yaygın olarak web sayfalarının yayınlanması için kullanılmaktadır. Bazı firmalar tarafından yazılmış olan FTP yazılımları sayesinde bağlanmak istediğimiz sunucu adresini, kullanıcı adını ve şifresini yazarak sunucu içerisinde, bize izin verilen klasöre bağlantı yapabiliyor, belirlenen sınırlar doğrultusunda dosya alma ve gönderme işlemlerini yapabiliyoruz.

Dosya gönderme işlemi için C# kodları ve açıklamaları aşağıdadır.

public string UploadFileToFtp(string dosyaAdi)

{

ftpServerIP = “ftp.ugurkizmaz.com”;

FileInfo dosyaBilgisi = new FileInfo(dosyaAdi);

string uri = “ftp://” + ftpServerIP + “/” + dosyaBilgisi.Name;

FtpWebRequest ftpIstegi;

 

ftpIstegi = (FtpWebRequest)FtpWebRequest.Create(new Uri(

“ftp://” + ftpServerIP + “/” + dosyaBilgisi.Name));

 

ftpIstegi.Credentials = newNetworkCredential(“deneme@ugurkizmaz.com”,”123″);
// Bağlantıyı sürekli açık tutuyor.

ftpIstegi.KeepAlive = false;

 

// Yapılacak işlem (Upload)

ftpIstegi.Method = WebRequestMethods.Ftp.UploadFile;

 

//Verinin gönderim şekli.

ftpIstegi.UseBinary = true;

 

//Sunucuya gönderilecek dosya uzunluğu bilgisi

ftpIstegi.ContentLength = dosyaBilgisi.Length;

 

// Buffer uzunluğu 2048 byte

int bufferUzunlugu = 2048;

byte[] buff = new byte[10000000];

int sayi;

 

FileStream stream = dosyaBilgisi.OpenRead();

 

try

{

Stream str = ftpIstegi.GetRequestStream();

 

sayi = stream.Read(buff, 0, bufferUzunlugu);

 

while (sayi != 0)

{

str.Write(buff, 0, sayi);

sayi = stream.Read(buff, 0, bufferUzunlugu);

}

return “”;

 

str.Close();

stream.Close();

}

catch (Exception ex)

{

return ex.Message;

}

}