اعتبار سنجی پسوند فایل در کنترل FileUpload با ASP.Net
با سلام در این مقاله ، توضیح می دهیم که چگونه یک فیلتر افزودنی فایل برای کنترل FileUpload ایجاد کنید . در بسیاری از مواقع ، فقط نیاز به بارگذاری انواع فایلهای انتخاب شده و رد سایرین وجود دارد
در این مقاله ، اعتبار سنجی Client Side و Server Side را با استفاده از پسوندهای آنها توضیح خواهیم داد
بررسی اعتبار سنجی Client Side
<script type ="text/javascript">
var validFilesTypes=["bmp","gif","png","jpg","jpeg","doc","xls"];
function ValidateFile()
{
var file = document.getElementById("<%=FileUpload1.ClientID%>");
var label = document.getElementById("<%=Label1.ClientID%>");
var path = file.value;
var ext=path.substring(path.lastIndexOf(".")+1,path.length).toLowerCase();
var isValidFile = false;
for (var i=0; i<validFilesTypes.length; i++)
{
if (ext==validFilesTypes[i])
{
isValidFile=true;
break;
}
}
if (!isValidFile)
{
label.style.color="red";
label.innerHTML="Invalid File. Please upload a File with" +
" extension:\n\n"+validFilesTypes.join(", ");
}
return isValidFile;
}
</script>
همانطور که در بالا مشاهده می کنید ، یک آرایه معتبرFileTypes داریم که در آن برنامه های افزودنی فایل هایی را که بر اساس بارگذاری می خواهیم به کاربر اجازه دهیم ، ذخیره می کنیم. سپس آن را از طریق آرایه حلقه کرده و مطابق با فایل های که توسط کاربر در صورت عدم مطابقت انتخاب می شود ، از شما خواسته می شود که یک فایل معتبر را انتخاب کنید.
می توانید پسوندهایی از انواع File را که می خواهید اجازه دهید به آرایه همانطور که در GIF متحرک در زیر نشان داده شده است اضافه کنید.

بررسی اعتبار سنجی Server Side
C #
protected void btnUpload_Click(object sender, EventArgs e)
{
string[] validFileTypes={"bmp","gif","png","jpg","jpeg","doc","xls"};
string ext = System.IO.Path.GetExtension(FileUpload1.PostedFile.FileName);
bool isValidFile = false;
for (int i = 0; i < validFileTypes.Length; i++)
{
if (ext == "." + validFileTypes[i] )
{
isValidFile = true;
break;
}
}
if (!isValidFile)
{
Label1.ForeColor = System.Drawing.Color.Red;
Label1.Text = "Invalid File. Please upload a File with extension " +
string.Join(",", validFileTypes);
}
else
{
Label1.ForeColor = System.Drawing.Color.Green;
Label1.Text = "File uploaded successfully.";
}
}
VB.Net
Protected Sub btnUpload_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim validFileTypes As String() = {"bmp","gif","png","jpg", "jpeg","doc","xls"}
Dim ext As String = System.IO.Path.GetExtension(FileUpload1.PostedFile.FileName)
Dim isValidFile As Boolean = False
For i As Integer = 0 To validFileTypes.Length - 1
If ext = "." & validFileTypes(i) Then
isValidFile = True
Exit For
End If
Next
If Not isValidFile Then
Label1.ForeColor = System.Drawing.Color.Red
Label1.Text = "Invalid File. Please upload a File with extension " & _
String.Join(",", validFileTypes)
Else
Label1.ForeColor = System.Drawing.Color.Green
Label1.Text = "File uploaded successfully."
End If
End Sub
همانطور که متوجه خواهید شد که اعتبار سنجی پسوند Server Side نیز از همان منطقی استفاده می کند که در بررسی اعتبار سنجی client side استفاده می شود. در اینجا همچنین یک رشته از پسوندهای معتبر File را حفظ می کنیم و سپس آن را با پسوند فایلی که بارگذاری شده است مطابقت می دهیم. بررسی اعتبار سنجی Server Side تضمین می کند که حتی اگر Client Side جاوا اسکریپت بررسی نشود ، می تواند Server Side را تأیید کند.
هر دو روش اعتبارسنجی Server Side و Client Side را در مورد رویداد کلیک دکمه بارگذاری همانطور که در شکل زیر مشاهده شده است ارتباط می گیریم. همچنین از برچسب استفاده کرده ایم که پیام های خطا یا موفقیت را نشان می دهد.
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="btnUpload" runat="server" Text="Upload"
OnClientClick = "return ValidateFile()" OnClick="btnUpload_Click" />
<br />
<asp:Label ID="Label1" runat="server" Text="" />