AltınSoft Makale Arşivi

Web Hosting Hizmetleri

Anasayfa | Toplu SMS | Video | Web Hosting | Makale Ara | Anketler | Sitene Ekle | RSS Kaynağı

Arama


Gelişmiş Arama

File Upload Kontrolü Kullanımı

File Upload Kontrolü Kullanımı

Kategori  Kategori : Asp.NET
Yorumlar  Yorum Sayısı : 0
Okunma  Okunma : 1173
Tarih  Tarih : 24 Şubat 2008 13:27

Sıklıkla ihtiyaç duyacağımız işlemlerden biridir sunucuya bir dosyanın gönderilmesi. En basit örnekle üyelik sisteminizde kullanıcılarınızın kendi niteliklerini taşıdığını düşündükleri resimlerini profillerine eklemesi, yada bir forum uygulamasında kullanıcıların açtıkları konu başlıklarına ek dosyalar koymak istemesi web uygulamanızda sunucuya dosya yükleme işlemini gerekli hale getirir.

Tüm bu gibi taleplere cevap verebilmesi adına Viasul Studio içine eklenen "File Upload" kontrolünü ve özelliklerini ele alacağız.

Basit bir demo üzerinde kontrolümü tanımak adına yeni bir web site projesi açarak başlıyoruz işimize. Ve toolbox'dan "file upload" kontrolünü web formumuzun üzerine bırakıyoruz.



Şimdi kontrolün özelliklerini biraz incelemeye başlayalım.

FileBytes : İşlenen dosya boyutunu byte cinsinden verir.
FileContent : İşlenen dosyayı stream cinsinden alır.
FileName : İşlenen dosyanın isim bilgisini verir.
PostedFile :Asıl fonksiynlarımızı barındıran PostedFile Sınıfını çağırır.
SaveAs : Verdiğimiz path bilgisine göre gönderilen dosyayı kaydeder.

Upload işlemi için kullanacağımız sınıf kütüphanesi olan PostedFile ile erişebileceğimiz gönderilen dosya bilgilerinde ise ContentLength, ContentType, FileName, vs yöntemlerini kullacağız.

Hemen ilk demomuzu yapalım, yani basit anlamda belirteceğimiz bir path deki dosyayı alalım ve örnek uygulamamızın Application path'ine kaydedelim.

Örnek 1:
Yeni oluşturduğumuz web site projemize File Upload kontrolünü ekledik. Ve elbette yolunu seçeceğimiz dosyanın upload edilebilmesi için bir buton kontrolü.

<asp:FileUpload ID="FileUpload1" runat="server" />
<
asp:Button ID="Button1" runat="server" Text
="Button" />

FileUpload kontrolü bizim herhangi bir kod girmemize gerek kalmaksızın windows gezgini modunda klasörler ve diskler arasında gezinmemize olanak tanıyor. Eklediğimiz button ise seçeceğimiz dosyanın belirteceğimiz path e kaydedilmesini sağlayacak.

Şimdi Button1 için yazacağımız basit kod bloğuna gelelim:

if (FileUpload1.HasFile)
{
   FileUpload1.SaveAs(@"C:\Documents and Settings\evren\My Documents\" + FileUpload1.FileName);
   Label1.Text = "Yüklenen Dosya : " + FileUpload1.FileName;
}
else
{
   Label1.Text = "Henüz Yüklenecek Dosya Seçilmedi!";
}

Label1 için yazdığımız upload sonucunu bilgilendirme kodu ve en başta if ile kontrolünü yaptığımız FileUpload kontrolünün bir değer içerip içermediğine yönelik kodu saymazsak FileUpload kontolü basit anlamda dosya gönderimi işlemlerini tek satır kod ile gerçekleştirdi.

Şimdi uygulamamızı biraz daha değiştirelim.

Örnek 2:
Uygulamamıza dosya boyutunu kontrol eden bir if kontrolü daha ekleyelim. Örneğin 1 Mb'dan büyük bir dosya upload edilmeye çalışıldığında bir hata mesajı döndürsün ve işlemi gerçekleştirmesin. Bu ne zaman işimize yarayacak? Çok güçlü bir internet bağlantısıyla web uygulamanıza çok büyük boyutta dosyalar upload edilmeye çalışılabilir. Bu web sunucunuzun performansında ciddi sorunlara yol açabilir. Yada siz web uygulama kurallarınız gereği belli boyuttan büyük dosyaların uploadına izin vermeyebilirsiniz.

Ekleyeceğimiz yeni kontrolle yazdığımız kod bloğu şu şekilde değişiyor.

if (FileUpload1.HasFile)
{
   if (FileUpload1.PostedFile.ContentLength > 1024)
{
      Label1.Text = "Seçtiğiniz Dosyanın Boyutu Tanımlanandan Daha Büyük!";
}
else
{
   FileUpload1.SaveAs(@"C:\Documents and Settings\evren\My Documents\" + FileUpload1.FileName);
   Label1.Text = "Yüklenen Dosya : " + FileUpload1.FileName;
}
}
else
{
   Label1.Text = "Henüz Yüklenecek Dosya Seçilmedi!";
}



Bu tip bir sınırlandırma işlemini web.config dosyasını kullanarak da yapabilirsiniz. Bunun için executionTimeOut ve maxRequestLength özelliklerini inceleyelim.


     


Web.Config'e eklediğimiz kod bloğu sayesinde uygulamamızın timeout süresini 5 dk (300 sn) ve gelebilecek maximum talep boyutunu da 1 Mb (1024) olarak sınırlandırdık.

 

Yazdırılabilir Sayfa Yazdırılabilir Sayfa | Word'e Aktar Word'e Aktar | Tavsiye Et Tavsiye Et | Yorum Yaz Yorum Yaz

Asp.NET

En Çok Okunan Makaleler

Seçtiklerimiz

Anket

AltınSoft Makale Arşivini beğendinizmi ?




Tüm Anketler

© 2004-2009 Tüm Hakları Saklıdır
RSS Kaynağı

AltınSoft Bilişim Teknolojileri

Altyapı: MyDesign Haber Sistemi