معرفی کنترل FileUpload :

کنترل FileUpload در صفحات ASP.Net ، این امکان را به کاربران شما می دهند تا فایل های مورد نظر خود را به سرور سایت شما آپلود ( Upload ) نمایند .
برای مثال فرض کنید در سایت شما هر کاربری که ثبت نام نماید ، بایستی یک عکس درباره خود را با فرمت jpg و حداکثر سایز ۴۰ KB ، برای شما ارسال نماید . برای انجام این کار می توانید از کنترل FileUpload به راحتی استفاده نمایید .

کنترل FileUpload این امکانات را در اختیار شما قرار می دهد :

کاربران سایت شما فایل های مورد نظر خود را به آدرس تعیین شده بر روی سایت آپلود نمایند .
سایز فایلی که کاربر می خواهد بر روی سایت ارسال نماید را محدود نمایید . مثلا یک حداکثر سایز برای آن تعیین نمایید .
خصوصیات فایل های آپلود شده را بررسی نموده و در صورت صحیح بودن بر روی سرور ذخیره شوند .

شکل کلی تعریف و نمایش دکمه فرمان FileUpload در صفحه های ASP.Net به صورت زیر است :

   < asp:FileUpload   ID=”FileUpload1″   runat=”server” / >

کنترل FileUpload چگونه کار می کند :

کنترل FileUpload این امکان را برای کاربران سایت های ASP.Net فراهم می کند تا بتوانند انواع فایل های مورد نظر خود از جمله عکس ، فایل های متنی و … را به سرور سایت آپلود نمایند .
این کنترل یک کادر متن ( کنترل TextBox ) را به کاربر نمایش می دهد تا وی بتواند آدرس و نام فایل مورد نظر خود را در آن وارد کرده و به سرور ارسال نماید . این کنترل همچنین یک دکمه Browse را به کاربر نمایش می دهد که با فشردن آن ، یک کادر انتخابی Dialog Box باز می شود . توسط این کادر ، کاربر می تواند به جستجوی فایل مورد نظر خود بر روی کامپیوتر ، پرداخته و پس از انتخاب آن ، فایل را به سرور آپلود نماید .

مدیریت فایل های آپلود شده :

هنگامی که کاربر فایل خود را انتخاب کرده و سپس با ارسال آن ، صفحه را postback می کند ، فایل به همراه درخواست آن به سرور آپلود می شود . این فایل پس از آپلود در حافظه موقت سرور قرار گرفته و در صورت تایید در حافظه ثابت و در مسیر تعیین شده ذخیره خواهد شد .
شما می توانید از طریق های زیر به فایل آپلود شده و خصوصیات آن دسترسی داشته باشید :

به عنوان آرایه ای از byte ها : در این حالت فایل توسط خاصیت FileBytes کنترل FileUpload قابل دسترسی خواهد بود . در مثال های عملی این بخش ، طرز کار با این حالت را نمایش داده ایم .
به عنوان جریانی از داده ها : در این حالت فایل توسط خاصیت FileContent کنترل FileUpload قابل دسترسی خواهد بود . در مثال های عملی این بخش ، طرز کار با این حالت را نمایش داده ایم .
به عنوان یک شی از نوع HttpPostedFile :
در این حالت فایل توسط خاصیت PostedFile کنترل FileUpload قابل دسترسی خواهد بود . در این حالت به وسیله خواص ContentType و ContentLengh خاصیت PostedFile ، می توان به خواص فایل دسترسی داشته و آنها را کنترل و برنامه ریزی نمود . در مثال های عملی این بخش ، طرز کار با این حالت را نمایش داده ایم .

مثال های عملی کار با کنترل FileUpload :

در مثال های زیر کار با کنترل FileUpload را در مدیریت فایل های آپلود شده به سرور در عمل نمایش داده شده است :

مثال ۱ :   کنترل سایز فایل آپلود شده :
در مثال اول یک کنترل FileUpload را قرار داده ایم که کاربر می تواند فایل مورد نظر خود برای آپلود به سرور انتخاب نماید . سپس با کلیک بر روی دکمه فرمان BtnUpload درخواست آپلود به سرور ارسال می شود .
برنامه با کلیک بر روی دکمه فرمان BtnUpload تابع Confirm_Upload را فراخوانی می کند . کد این تابع در فایل کد صفحه ASP.Net وجود دارد . این تابع در صورتی که سایز فایل بیش از ۲۰۰۰۰ Bytes باشد ، عملیات آپلود فایل را کنسل کرده و یک پیام هشدار به کاربر ارسال می کند . در غیر این صورت فایل آپلود می شود :
نکته مهم : در این مثال کد لازم برای هر ۳ حالت کار با کنترل FileUpload را قرار داده ایم . توجه داشته باشید ، فقط یکی از دستورات if کافی است :

 <asp:FileUpload ID = ” FileUpload1 ” runat = ” server ” />
<asp:Button runat = ” server ” ID = ” BtnUpload ” OnClick = ” Confirm_Upload ” Text=” Click to Upload File ” />
<asp:Label ID = ” lblMassage ” runat = ” server ” Text = ” ” ></asp:Label>

 

کد پست صحنه
در فایل کد صفحه     protected void Confirm_Upload (object sender, EventArgs e)
{
// if ( FileUpload1.FileBytes.Length > 20000 )         // کد لازم در حالت اول
// if ( FileUpload1.FileContent.Length > 20000 )         // کد لازم در حالت دوم
if ( FileUpload1.PostedFile.ContentLength > 20000 )         // کد لازم در حالت سوم
{
lblMassage.Text = “اندازه فایل بیش از حد مجاز است”;
}
}

 

مثال ۲ :   کنترل نوع فایل آپلود شده :
در مثال دوم نیز یک کنترل FileUpload را قرار داده ایم که کاربر می تواند فایل مورد نظر خود برای آپلود به سرور انتخاب نماید . سپس با کلیک بر روی دکمه فرمان BtnUpload درخواست آپلود به سرور ارسال می شود .
برنامه با کلیک بر روی دکمه فرمان BtnUpload تابع Confirm_Upload را فراخوانی می کند . این تابع نوع فایل آپلود شده را بررسی کرده و چنانچه از نوع عکس و با فرمت jpg نباشد ، یک پیام هشدار به کاربر نمایش داده و عملیات آپلود فایل متوقف می شود . در غیر این صورت فایل آپلود می شود :

  <asp:FileUpload ID = ” FileUpload1 ” runat = ” server ” />
<asp:Button runat = ” server ” ID = ” BtnUpload ” OnClick = ” Confirm_Upload ” Text=” Click to Upload File ” />
<asp:Label ID = ” lblMassage ” runat = ” server ” Text = ” ” ></asp:Label>کد پست صحنه
در فایل کد صفحه     protected void Confirm_Upload (object sender, EventArgs e)
{
if ( FileUpload1.PostedFile.ContentType != “image/jpeg” )
{
lblMassage.Text = ” فایل باید فرمت jpg داشته باشد”;
}
}