ASP.net ile Resim Yükleme-FileUpload İşlemi

Bu makalemizde FileUpload nesnesini kullanarak resim ekleme olayını öğreneceğiz. Ayrıca eklenen resmin dosya tipini, dosya boyutunu kontrol edip, kullanıcıların bizim isteğimiz dışında farklı bir dosya formatı yüklemesini engelleyeceğiz. 

İlk önce aşağıdaki arayüzü yeni bir ASP.net Web Projesi açarak oluşturunuz. WebForm gelmediyse, yeni bir WebForm projenize ekleyiniz.

Gördüğünüz gibi projemize bir tablo ekledik ve ToolBox'tan bir FileUpload nesnesi bir Kaydet butonu ve en altta bilgi mesajıo vermek üzere lblDurum isminde bir label ekledik. Sonra Kaydet butonuna tıklayıp aşağıdaki kodları içine yazınız. En üstteki namespace'lerin yer aldığı kısma using System.IO; namespace'ini de ekleyiniz.
 
    protected void btnKaydet_Click(object sender, EventArgs e)
    {
        if (FileUpload1.HasFile)
        {
            try
            {
                if (FileUpload1.PostedFile.ContentType == "image/jpeg")
                {
                    if (FileUpload1.PostedFile.ContentLength < 102400)
                    {
                        string filename = Path.GetFileName(FileUpload1.FileName);
                        if (filename != "")
                        {
                            FileUpload1.SaveAs(Server.MapPath("~/images/") + filename);
                            lblDurum.Text = filename + " dosyası yüklendi!";
 
                        }
 
                    }
                    else
                        lblDurum.Text = "Dosya boyutu 100 KB'dan düşük olmalı!";
                }
                else
                    lblDurum.Text = "Sadece JPEG formatı kabul edilir.";
            }
            catch (Exception ex)
            {
                lblDurum.Text = "Dosya yüklenemedi: " + ex.Message;
            }
        }
    }
}
 
Şimdi yukarıdaki kod satırlarını açıklayalım.

İlk önce FileUpload1.HasFile ile kullanıcının bir dosya seçip seçmediğini kontrol ediyoruz, zira kullanıcı bir dosya seçmeden de Kaydet butonuna basabilir.  Kullanıcı bir dosya seçtiyse True, seçmediyse False değerini alacaktır.               

if (FileUpload1.PostedFile.ContentType == "image/jpeg")
satırı ile seçilen dosyanın bir JPEG dosyası olup olmadığını kontrol ediyoruz.  Kullanıcılar dosya uzantısı değiştirip Jpg veya jpeg yapsalar dahi sistem kabul etmeyecektir.

if (FileUpload1.PostedFile.ContentLength < 102400) satırı ile de yüklenen dosyanın boyutunu kontrol ediyoruz. 102 KB'dan düşük bir dosya ise kaydedilme işlemini başlatıyoruz, değilse lbldurum etiketine "Dosya boyutu 100KB'dan düşük olmalı" yazıyoruz. 

string filename = Path.GetFileName(FileUpload1.FileName); satırı ile yüklenen dosyanın ismini alıp filename değişkenine kaydediyoruz. Eğer dosya adı boş değilse   FileUpload1.SaveAs(Server.MapPath("~/images/") + filename); satırı ile kullanıcının seçtiği dosyayı kaydediyoruz. Labelimize de "Dosya yüklendi" yazıyoruz.

Mutlu kodlamalar,
Oğuzhan TAŞ
Nisan, 2015



 
Bookmark and Share