17 Ağustos 2009 Pazartesi

ASP.NET ' te Upload Edilen Dosya Uzantısının İstemci Tarafında Kontrolü

Merhaba,
ASP.NET 'te sık kullandığımız kontrollerden biri de fileupload kontrolü.Ancak fileupload kontrolü bize upload edilen dosyanın uzantısını istemci tarafında kontrol etmemizi sağlamıyor.Bunun için kullanabileceğimiz 2 seçenek var.
  • Kendi javascript kodumuzu yazarak uzantı kontrolü
  • Regular Expressionlar ile uzantı kontrolü
Kendi javascript kodumuzu yazarak uzantı kontrolü
Kendi javascript kodumuzu yazarken öncelikle fileupload kontrolünde path değerini almamız gerekiyor.Daha sonra string işlemleri ile uzantıyı alıp bizim istediğimizi uzantılarla uyuşup uyuşmadığını kontrol etmemiz gerekiyor.
Javascript kodu ise şu şekilde olacak:

<script type="text/javascript">

function CheckExtension() {

var validextensions = new Array();

var isvalid = false;

validextensions[0] = ".pdf"; //Kabul edilen uzantılarin eklenmesi

validextensions[1] = ".doc";

validextensions[2] = ".zip";

var path = document.getElementById('FileUpload1').value; //Secilen pathin alinmasi

var ext = path.substring(path.length - 4, path.length); //Uzantinin alinmasi

ext = ext.toLowerCase();

for (var i = 0; i<>

if (ext == validextensions[i]) { //Kabul edilen uzantilarla karsilastirilmasi

isvalid = true;

break;

}

}

alert("IsValid:" + isvalid);

}

script>

Body tagı ise şu şekilde olabilir:

<form id="form1" runat="server">

<div>

<asp:FileUpload ID="FileUpload1" runat="server" />

<input id="Button1" onclick="CheckExtension()" type="button" value="button/>

div>

form>

Regular Expressionlar kullanarak uzantı kontrolü

Aslında en kolay yöntem regular expressionları kullanmak.Bunun için asp.net ile beraber gelen regularexpressionvalidator ı kullanabiliriz. Regular expressionda ise yine dosya pathinin sonuna neler gelebilir onları tanımlayacağız.
Aspx tarafındaki kodlar ise şekilde olacak:

<form id="form1" runat="server">

<div>

<asp:FileUpload ID="FileUpload1" runat="server" />

<asp:RegularExpressionValidator ID="Regularexpressionvalidator1"

ValidationExpression="^.+\.rar$" ErrorMessage="Lutfen istenen uzantıda bir dosya yukleyiniz..."

ControlToValidate="FileUpload1" runat="server" />

div>

form>



Aslında bu kontrolleri client tarafında yapmamızın asıl amacı sadece daha hızlı yanıt vermek olmalıdır.Unutulmamalıdır ki bu javascript kontrolleri kolayca aşılabilir.Bu nedenle aynı kontrollerin server tarafında da yapılması unutulmamalıdır.

0 yorum: