Bu yazımda MVC ile dosya upload işlemlerini nasıl gerçekleştireceğimizi göstereceğim. Göstereceğim yöntemle hem tek bir dosyayı hem de çoklu dosyayı u

Bu yazımda MVC ile dosya upload işlemlerini nasıl gerçekleştireceğimizi göstereceğim. Göstereceğim yöntemle hem tek bir dosyayı hem de çoklu dosyayı upload edebileceğiz. Ayrıca dosya upload kontrollerini de dinamik olarak kullanıcı oluşturabilecek ve bunu jQuery ile yani javascript ile yapacağız. Bu şekilde servera az yük binmiş olacak. Server sadece gelen dosya upload isteklerini karşılayıp, dosyaları alacak. Oldukça kullanışlı ve esnek bir yapı.  Şimdi bu upload (multi upload) olayını MVC ile nasıl yapacağımıza bakalım.

Öncelikle html tarafta yazacağımız script ve html kodlara bakalım. Multiupload için file kontrollerini dinamik olarak script ile (jQuery ile) oluşturacağız. Böylece çok kullanışlı bir uygulama hazırlamış oluyoruz. Dinamik olarak fileupload kontrolü oluşturan script kodlarımız ve html kodlarımız şöyle olmalı.
 

// jQuery kodlarımız
<script type="text/javascript">
	$(function() {
		$("#adet").append("<option value='0'>Dosya Adeti Seçiniz...</option>");
		for (var i = 1; i <= 20; i++) {
			$("#adet").append("<option value='" + i + "'>" + i + "</option>");
		}
		$("#adet").change(function() {
			var adet = $("#adet").val();
			$("#files").html("");
			for (var i = 0; i < adet; i++) {
				$("#files").append("<p><input type='file' name='file_"+i+"'></p>");
			}
		});
	});
</script>
// Html Kodlarımız
<% Html.BeginForm("Upload", "Home", FormMethod.Post, new { @enctype = "multipart/form-data", @id = "form" }); %>
<select id="adet"></select>
	<div id="files"></div>
	<input type="submit" value="Gönder"><%= ViewData["sonuc"] %><% Html.EndForm(); %>

 

Script ve html kodlarımızdan sonra serverda oluşturduğumuz kontrollerin değerlerini alıp, dosyaları upload edecek olan Controller metodumuz ise şu şekilde olmalı.
 

// Server taraflı Controller kodlarımız
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Upload(){
	foreach (string name in Request.Files)
	{
		var file = Request.Files[name];
		file.SaveAs(Server.MapPath("~/" + file.FileName));
	}
	ViewData["sonuc"] = "Kayıtlar Başarılı.";
	return View();
}

 

 

Fileupload kontrollerini dinamik olarak jQuery ile oluşturmak dışında el ile sabit sayıda oluşturabilir ve kullanbiliriz. Bunun için yapmamız gereken sadece html kodlarımızı aşağıdaki gibi oluşturmak.
 

// Sabit sayıda Fileupload nesnesi için Html Kodlarımız (örnek kodlar için 3 adet)
<% Html.BeginForm("Upload", "Home", FormMethod.Post, new { @enctype = "multipart/form-data", @id = "form" }); %>
<input type='file' name='file1'>
<input type='file' name='file2'>
<input type='file' name='file3'>
<input type="submit" value="Gönder">
<%= ViewData["sonuc"] %><% Html.EndForm(); %> 

 

Görüldüğü gibi bu şekilde tekli veya çoklu upload işlemlerini MVC'de gerçekleştirebiliyoruz.

İlgili Makaleler

Bu yazıya 0 yorum yapılmış.

Yorum Gönder