Asp.NET MVC 5 Dosya Yükleme

Kodlama admin 393 Okundu

Merhaba bu yazımda son zamanlarda ilgimi çeken Asp.NET MVC framework’unun 5 6 sürümlerinde nasıl resim yüklendiğini anlatmaya çalışacağım. Uzun süredir sayfaya yazı giremediğim farkındayım. 🙂 yoğunluk çok fazla gerçekten.

Öncelikle view’ımızın body tag’leri arasında şu şekilde bir html form açıp, arayüzümü kodluyoruz. Eğer dosya yükleme aşarılı ise bir viewbag ile bunu ekrana yazdıracağız.

@using (Html.BeginForm("Index","Home",FormMethod.Post , new { enctype="multipart/form-data" }))
    {
        <input type="file" name="uploadfile" /><br />
        <input type="submit" value="Yükle" />
    }
    @if (ViewBag.success == true)
    {
        <h2>Kayıt Başarılı!</h2>
    }

 

Daha sonra controller sayfamızı aşağıdaki şekilde kodluyoruz.

 

public ActionResult Index()
        {
            return View();
        }
        [HttpPost]
        public ActionResult Index(HttpPostedFileBase uploadfile)
        {
            if (uploadfile.ContentLength > 0 && uploadfile.ContentType =="image/jpeg") { 
            uploadfile.SaveAs(Server.MapPath("~/Content/Images/"+uploadfile.FileName));
                ViewBag.Success = true;
            }
            return View();
        }

burada ilk ActionResult, html kodlamamızı yapmamız için gereken View’ı döndürürken, ikinci ActionResult ise Post methodu gerçekleştiğinde yapılacak işlemleri kodladığımız yerdir. View’ımızdaki formdan aldığımız datayı HttpPostedFileBase tipinde bir değişkene alıyoruz ve daha sonra if koşul yapısında bu dosyanın boyutunun 0 bayttan büyük olup olmadığını – yani dosyanın geçerl ibir dosya olup olmadığını – ve dosya tipinin jpeg olup olmadığını kontrol ettiriyoruz. ardından SaveAs() fonksiyonuyla anadizindeki Content klasörünün altında Images klasörüne dosya adımızla birlikte kaydediyoruz.

İf koşulunu kendinize göre daha spesifik hale getirip farklı dosya uzantıları ve boyut kısıtlamaları yapabilirsiniz. Ayrıca dosya ismine Random kütüphanesinden rastgele bir sayı ekleyip çakışmayı önleyebilirsiniz. Dosya yükleme başarılı ise aşağıdaki ekranla birlikte tekrar POST ettiğimiz sayfaya yönlendiriliyoruz.

Asp.NET MVC ile ilgili yazmayı düşünüyorum. Kim bilir, belki ilerde baştan sona bir proje hazirlayıp tutorial şeklinde video çekebiliriz. 🙂

Sosyal Ağlarda Paylaş

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir