FileUpload (Dosya Yükleme) Kontrolü

Eyl 06, 2013

Dosya Yükleme kontrolü, Web sitesi ziyaretçilerinin arayüz üzerinden, kendi bilgisayarlarında bulunan dosyaları sunucuya yüklemesini sağlayan bir kontroldür. Bir metin kutusu ve dosyanın yükleneceği dizinin yolunu belirlemeye yarayan bir Gözat tuşundan oluşur.

Dosya Yükleme Kontrolü Fonksiyonları

.FileBytes (Dosya Boyutu): Yüklenen dosyanın içeriğini byte cinsinden almaya yarar.
.FileContent (Dosya İçeriği): Yüklenen dosyayı dizi cinsinden almaya yarar.
.FileName (Dosya Adı): dosyaadi.uzanti şeklinde dosya adını verir.
.SaveAs (Kaydet): Verilen konuma dosyayı kaydeder.
.PostedFile (Gönderilen Dosya): HttpPostedFile sınıfını çağırır. Bu sınıfın fonksiyonlarını kullanmak için önce .postedfile çağırılmalıdır.
.ContentType (İçerik Tipi): HttpPostedFile sınıfına ait bir fonksiyondur. Dosyanın türünü verir. Örneğin, .jpeg uzantılı bir dosya için image/pjpeg döndürür.

Uygulama:

Dosya Yükleme kontrolü ASP.NET'in Standart kontrolleri içerisinde yer almaktadır. Dosya Yükleme kontrolü projenin .aspx uzantılı sayfası içerisine konumlandırılır ve.aspx.cs uzantılı sayfa içerisinde gerekli kodlar yazılır:

protected void Button1_Click(object sender, EventArgs e)
{
    klasorYolu = "C:\\Documents and Settings\\tst\\Desktop\\klasorAdi\\";
    isim = FileUpload1.FileName;
    klasorYolu += isim;
    uzanti = FileUpload1.PostedFile.ContentType.ToString();
    if (uzanti == "image/pjpeg")
    {
        FileUpload1.SaveAs(klasorYolu);
        Label1.Text = "Başarılı Yükleme";
    }
    else
        Label1.Text = "Hatalı Dosya Türü";
}

Burada klasorYolu isimli değişkene resim dosyasının yüklenmesi istenen klasörün yolu atanmıştır. isim adlı değişkene de .FileName fonksiyonu kullanılarak yüklenmesi istenen dosyanın adı atanır. Yükleme işlemi sırasında klasorYolu'na isim değişkeni dinamik olarak eklenir ve kaydetme işlemi için gerekli olan tam yol elde edilmiş olur. Ayrıca yukarıdaki kod parçasında sadece .jpeg uzantılı dosyaların yüklenebilmesi için sınır konulmuştur. Uzantıyı kontrol etmek için.PostedFile.ContentType fonksiyonu ile uzantı elde edilir ve uzanti adlı değişkene atanır. Bu değişken if-else yapısı içinde kontrol edilir. İstenen uzantı ise.SaveAs fonksiyonu ile yükleme işlemi yapılır, değil ise kullanıcıya hata mesajı gösterilir.

Bu uygulamanın ekran çıktıları aşağıdaki gibi olur:

Browse (Gözat) tıklanarak yüklenmesi istenen resim dosyası seçilir.

.jpeg uzantılı bir dosya seçildiğinden Kaydet tıklandığında yükleme yapılır ve aşağıdaki onay mesajı alınır.

Aşağıda ise Browse tıklanarak .txt uzantılı bir dosyanın seçildiği görülmektedir.

Kaydet tıklandığında dosya uzantısı yanlış olduğundan yükleme işlemi gerçekleşmez ve aşağıdaki gibi bir hata mesajı ile karşılaşılır.