Jump to content

Basit Bir Ftp Uygulaması


wmismail

Recommended Posts

Basit bir FTP Uygulaması

FTP

(File Transfer Protocol) Internete bağlı bir bilgisayardan diğerine

(her iki yönde de) dosya aktarımı yapmak için geliştirilen bir internet

protokolü ve bu işi yapan uygulama programlarına verilen genel addır.

İlk geliştirilen internet protokollerinden biridir. FTP protokolü ile

bir başka bilgisayardan bir başka bilgisayara dosya aktarımı

yapılırken, o bilgisayar ile etkileşimli-aynı anda (on-line) bağlantı

kurulur ve protokol ile sağlanan bir dizi komutlar yardımıyla iki

bilgisayar arasında dosya alma/gönderme işlemleri yapılır.

Bir

web projesi yada web sitesi yaptığımızda bunu yayınlamak  için bir FTP

programına ihtiyaç duyarız. Bunu nasıl yaparız? FTP programını açar,

ftp bilgilerimiz ile ftp?ye bağlanır ilgili dosyaları ftp alanına

transfer ederiz.

image001.jpg

FTP

kullanımı sadece bununla da sınırlı değildir elbette. Örneğin kendi

sistemimiz üzerinden (bu bir winform uygulaması olabilir) web sitemize

içerik girmemiz gerektiğinde ilgili içeriğe bir dosya eklemek

istediğimizde işimizi çok kolaylaştıracak bir yöntemdir.

.Net Framework da bu işi FtpWebRequest classı ile yaparız. Şimdi kısaca bu classı tanıyalım.

FtpWebRequest

Framework 2.0 içersinde FTP ile çalışmamızı sağlayan yeni bir class eklendi. Bu classın adı FtpWebRequest. Bu class System.net namespace?si altında bulunmaktadır.  Webclient sınıfını kullanarak uzaktaki bir sunucudan FTP?ye bağlanarak bir dosya indirebilir yada sunucuya bir dosya yükleyebiliriz.

ÖRNEK

Biz

bu uygulamamızda kendi uygulamamız üzerinden bir ftp?ye bağlanıp FTP?ye

bir dosya upload edip yine FTP?en kendi makinemize bir dosya download

edeceğiz.

İlk olarak yeni bir windows projesi oluşturalım;

Formumuz

üzerine 2 buton ekleyelim. İlk butona bastığımızda upload işlemini

gerçekleştirecek. Diğer butonda FTP?den dosya indirmemizi sağlayacak.

Benim hazırlamış olduğum form aşağıdaki gibidir.

image002.jpg

İlk olarak FTP?ye bağlanarak bir dosya indirelim. Bunun için gerekli kodları yazmaya başlayalım;

____________________________________

FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://www.xxxxxx.com/xxx/sem.swf"'>ftp://www.xxxxxx.com/xxx/sem.swf");

 

//Sunucu ile haberleşecek bir FtpWebRequest  objesi yarattık. Şimdi bu obje için login olmak için gerekli bilgilerini oluşturalım.

 

            request.Credentials = new NetworkCredential("xxxxx", "xxxxx");

 

            using (FtpWebResponse response = (FtpWebResponse)request.GetResponse())

            {

                Stream data = response.GetResponseStream();

                string targetPath = "C:/sem.swf";//Local makinedeki dosyanın tam yolunu belirtelim

                if (File.Exists(targetPath)) // Dosya varsa sil?

                    File.Delete(targetPath);

 

                byte[] byteBuffer = new byte[4096];

 

// Dosyayı loacal makinemize aktarıyoruz

 

                using (FileStream output = new FileStream(targetPath, FileMode.CreateNew))

                {

                    int bytesRead = 0;

                    do

                    {

                        bytesRead = data.Read(byteBuffer, 0, byteBuffer.Length);

                        if (bytesRead > 0)

                        {

                            output.Write(byteBuffer, 0, bytesRead);

                        }

                    }

                    while (bytesRead > 0);

                }

            }

------------------------------------------------------------------------------------------------------------

FTP?den dosyayı indirme işlemini tamamladık. Şimdi de sunucuya bir dosya yükleyelim. Bunun için gerekli kodlar;

-------------------------------------------------------------------------------

FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://www. xxxxxx.com/xx/sem.jpg"); // FTP?den indireceğimiz dosyayı belirtiyoruz?

            request.Method = WebRequestMethods.Ftp.UploadFile;

 

            request.Credentials = new NetworkCredential("xxxxx ", " xxxxx ");

 

            //  Login olmak için gerekli bilgilerini oluşturalım.

            StreamReader sourceStream = new StreamReader("c:/sem.jpg");

            byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());

            sourceStream.Close();

            request.ContentLength = fileContents.Length;

 

            Stream requestStream = request.GetRequestStream();

            requestStream.Write(fileContents, 0, fileContents.Length);

            requestStream.Close();

--------------------------------------------------------------------------------------------------------------------

Upload işlemimiz de bu kadar. Şimdi bu yaptıklarımızı test edelim :dribble: İlk Olarak Yükle butonuna tıklayalım;

image003.jpg

FTP?ye bağlanalım, bakalım upload işlemini gerçekleştirmişmi?

image004.jpg

Evet Sem.jpg isimli dosya sunucu da artık J Şimdi hemen altındaki sem.swf isimli dosyayı Bilgisayarımıza indirelim. Bunun için indir butonuna tıklayalım.

image005.jpg

Sonucu görmek için C: sürücüsüne bakalım;

image006.jpg

Evet sem.swf?yi bilgisayarımıza indirdik. Gerçekten güzel ve işe yarayacak bir class?mış J

Bu makalenin de sonuna geldik, başka bir makalede görüşmek üzere başarı ve iyi günler dilerim.

Sem GÖKSU

Link to comment
Share on other sites

  • 1 ay sonra...

Konu ile alakalı değil ama öğrenmek istediğim bişey var abimin bi sitesi var o site üzerinden bir FTP programı ile bilgisayarımdan dosya paylaşımı yapabilirmiyim. Cevap evet ise Cute FTP programı var nereden başlamalıyım bu konuda hiç bir bilgim yok

Link to comment
Share on other sites

  • 2 hafta sonra ...

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...