ASP.NET MVC: Birden Çok Dosya Yükleme

Mustafa Taş
Ekmob Developer Studio
2 min readFeb 15, 2020

Bu yazıda ASP.NET MVC üzerinde tek bir aksiyon ile birden fazla dosyanın tek seferde nasıl controller classına gönderildiğini, yüklenecek dosyaların yolunu oluşturmayı ve nasıl kaydedildiğini göreceğiz.

1.Adım: Visual Studio menüsünden File > New > Project ve ASP.NET Web Application (.Net Framework)’u seçip devam ediyoruz. Daha sonra karşımıza çıkan seçeneklerden MVC’yi seçerek projemizi oluşturuyoruz

2. Adım: Dosya seçimini yaptırmak için üzerinde çalışacağımızIndex.cshtmlview pagemize ulaşıyoruz.
Solution Explorer > Views > Home > Index.cshtml

View Page’mize ulaştıktan sonra aşağıdaki html görüntüsü ile sayfamızı oluşturuyoruz.

Html helper yardımı ile içinde inputumuzu ve butonumuzu içeren bir form oluşturuyoruz. Burada dikkat edilmesi gereken nokta formumuza html attributes ile verdiğimiz enctype özelliğidir.

Enctype özelliği form verilerinin sunucuya gönderilirken nasıl kodlanacağını belirtir. Bu özellik method=”post” özelliği belirtilmişse kullanılabilir.

enctype özelliğinin alabileceği değerler şöyledir;

application/x-www-form-urlencoded: Varsayılan. Tüm karakterlerin gönderilmeden önce kodlanacağını belirtir.

multipart/form-data: ASCII olmayan verilerin gönderilmesi için kullanılır. (Dosya yükleme vb.) Bizim kullanacağımız değer budur.

text/plain: Boşluk tuşlarının “+” sembolüne, diğer karakterlerin kodlanmayacağını belirtir.

Dosyalarımızı seçtireceğimiz files elementimizde birden fazla dosyayı aynı anda seçebilmek için multiple özelliğini veriyoruz.

Html kodumuzu yerleştirdikten sonra alacağımız çıktı şu şekilde olacaktır;

3.Adım: HomeController.cs controllerımızı açtıktan sonra form sayfasımızda yükle butonuna bastığımızda çalışacak olan ActionResult methodumuzu ekliyoruz

Methodumuza gelen dosyaları HttpPostedFileBase[] türünde parametre olarak tanımlayarak alıyoruz.

Dosyalarımızı kaydedeceğimiz klasörün belirttiğimiz yolda var olup olmadığına bakıyoruz. Eğer yok ise Directory.CreateDirectory fonksiyonu ile belirttiğimiz klasörümüzü oluşturuyoruz.

Daha sonra methodumuza gelen dosyaları foreach ile dönerek kaydetme işlemini yapıyoruz.

Bu makalede ASP.NET MVC ile bir kerede birden çok dosya yükleme örneğimizi inceledik. Bu örnekte dosya yükleme işlevlerini çok basit ve temel düzeyde işledik. Eğer ASP.NET MVC öğrenmeye yeni başladıysanız bu makale size yardımcı olabilir.

--

--