اعتبار سنجی پسوند فایل آپلود شده در Asp.net

شنبه 15 فروردین 1394

در این مقاله نحوه ایجاد اعتبار سنجی برای پسوند فایل قبل از آپلود در سمت کاربر را شدح خواهیم داد

اعتبار سنجی پسوند فایل آپلود شده در Asp.net

گاهی اوقات کاربران می بایست فایلی با پسوند خاص را آپلود کنند و به سمت سرور ارسال نمایند .به عنوان مثال فایلی با پسوند photo , Word document , PDF یا غیره .

برای جلوگیری از این مشکالات ما باید پسوند فایل انتخاب شده توسط کاربر را در سمت کاربر اعتبار سنجی نماییم , برای این کار مطابق مراحل زیر عمل می کنیم :

ابتدا یک وب سایت با نام "Website1" در محیط ویژوال استودیو ایجاد میکنیم .

سپس یک صفحه با نام "Default.aspx" به پروژه اضافه می کنیم .

اکنون یک کنترل FileUpload با نام "FileUpload1" و یک کنترل button با نام "Upload" به صفحه اضافه کنیم .

از طریق تابع زیر پسوند فایل انتخاب شده توسط  کاربر را اعتبار سنجی می کنیم .برای این کار تابع زیر را در داخل تگ <Script> قرار میدهیم :

function GetExt()   
     {  
            var str = document.getElementById('FileUpload1').value;  
            var ext = str.substring(str.length - 3, str.length).toString();  
            extext = ext.toLowerCase();  
            if (ext == "pdf")
            {      
               alert("valid File")             
                return true;  
            }  
            else
            {  
                alert("Invalid File"); return false;  
            }  
        } 

سپس تابع تعریف شده را برای دکمه مورد نظر فرا خوانی می کنیم .

    OnClientClick="return GetExt();"  

 

اکنون پروژه را اجرا میکنیم , اگر فایلی با پسوند pdf انتخاب کنیم پیغام "پسوند فایل صحیح می باشد" نمایش داده می شود .

و اگر فایلی با پسوندی غیر از pdf انتخاب کنیم پیغام "پسوند فایل صحیح نمی باشد" نمایش داده میشود .

 

سپس اگر بخواهیم که در سمت سرور اعتبار سنجی شود ابتدا تابع تعریف شده در جاوا اسکریپت را حذف میکنیم و سپس در قسمت کد پشت صفحه کدهای زیر در رویداد کلیک دکمه را می نویسیم :

    protected void Button1_Click(object sender, EventArgs e)  
        {  
            string filename = Path.GetFileName(FileUpload1.PostedFile.FileName);  
            string extension = Path.GetExtension(filename);  
            string contentType = FileUpload1.PostedFile.ContentType;  
            HttpPostedFile file = FileUpload1.PostedFile;  
            byte[] document = new byte[file.ContentLength];  
            file.InputStream.Read(document, 0, file.ContentLength);  
      
            if (extension != ".pdf")  
            {  
                //  file is Invalid  
                Response.Write("This is Invalid Extension File");  
                return;  
            }         
            else  
            {             
                // upload the File because file is valid  
                Response.Write("This is valid File");  
            }  
        }  

اگر پسوند فایل اشتباه باشد پیغام "پسوند فایل صحیح نمی باشد" در صفحه ظاهد می شود .

و اگر پسوند فایل درست انتخاب شود پیغام "پسوند فایل صحیح می باشد " نمایش داده میشود .

 

 

 

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید