آپلود و ارسال فایل ها به سرور با کنترل FileUpload

Skip Navigation Links.

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

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

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

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

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

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

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

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

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

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

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

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

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

مثال 1 :   کنترل سایز فایل آپلود شده :
در مثال اول یک کنترل FileUpload را قرار داده ایم که کاربر می تواند فایل مورد نظر خود برای آپلود به سرور انتخاب نماید . سپس با کلیک بر روی دکمه فرمان BtnUpload درخواست آپلود به سرور ارسال می شود .
برنامه با کلیک بر روی دکمه فرمان BtnUpload تابع Confirm_Upload را فراخوانی می کند . کد این تابع در فایل کد صفحه ASP.Net وجود دارد . این تابع در صورتی که سایز فایل بیش از 20000 Bytes باشد ، عملیات آپلود فایل را کنسل کرده و یک پیام هشدار به کاربر ارسال می کند . در غیر این صورت فایل آپلود می شود :
نکته مهم : در این مثال کد لازم برای هر 3 حالت کار با کنترل 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 = "اندازه فایل بیش از حد مجاز است";
      }
}

مثال 2 :   کنترل نوع فایل آپلود شده :
در مثال دوم نیز یک کنترل 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 داشته باشد";
      }
}


Skip Navigation Links.

راجع این مطلب سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...         >>>>>  ورود به انجمن تخصصی


نطر خودتان درباره این صفحه را با ما در میان گذاشته و در صورت تمایل از Developer1 حمایت نمایید :

آیا مطالب این صفحه برای شما مناسب و مفید بوده است :

نام :                 
آدرس Email :    
 
نظر شما :  
 
سوال امنیتی : پایتخت ایران ؟      
حمایت از سایت Developer1