نوشته‌ها / ASP.NET · یادگیری

» Upload فایل در ASP.NET 2.0

ASP.NET 2.0 شامل کنترل Upload کردن فایلهاست که به کاربران اجازه بارگذاری فایل به وب سرور برای مقاصد گوناگون آرشیو و یا گرفتن فایل از کاربران وب سایت می دهد.

برای نمونه اگر در Forum ها ثبت نام کرده باشید هر کاربر امکان می یابد عکس خود یا فایل تصویری را که معرف ID خود ( Gravatar ) است را بارگذاری کند.
برای استفاده از کنترل FileUpload آنرا در نوار ابزار VS 2005 در Tab استاندارد خواهید یافت.

طراح VS 2005 کنترل FileUpload را با اضافه کردن مجموعه یک Textbox و کنترل Button - که معمولا با عنوان Browse است - به فرم وب آنرا نمایش می دهد. برای بارگذاری فایل انتخاب شده بایستی رویدادی را فراخوانی کرد که معمولا رویداد ناشی از کلیک یک دکمه ( Button ) جهت تایید فایل انتخابی برای بارگذاری است.

در مثال زیر نحوه ساختن یک فرم وب که در آن فایل Upload می شود را خواهید دید. همچنین سایز فایلی را که قرار است Upload شود کنترل و چک میشود.

  • ابتدا در VS 2005 یک پروژه جدید بسازید
  • در نوار ابزار (Toolbox) تحت Tab استاندارد روی کنترل FileUpload دوبار کلیک کنید تا به صفحه پیش فرض اضافه شود
  • سپس یک کنترل Button را به صفحه اضافه کنید
  • مقدار متن آنرا به "Submit" و نام آنرا btnSubmit بگذارید

فرم شما بایستی شبیه تصویر زیر باشد :

Figure #1

در Solution Explorer روی نام پروژه کلیک راست کرده یک پوشه جدید ( Regular Folder ) اضافه کنید و نام آنرا "Uploads" بگذارید. این پوشه جهت فایلهای آپلود شده است.

Figure #2

روی دکمه Submit دوباره کلیک کرده تا سابروتین مربوطه در code-behind ظاهر شود و کد زیر را وارد کنید

 Sub btnSubmit_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) _ Handles btnSubmit.Click Dim savePath As String = Request.PhysicalApplicationPath savePath += "uploads\" If FileUpload1.HasFile savePath += FileUpload1.FileName FileUpload1.SaveAs(savePath) Response.Write("File uploaded successfully!") Else Response.Write("No file to upload") End If End Sub

مسیر پروژه فعلی توسط خاصیت PhysicalApplicationPath متعلق به شی Request قابل شناسایی است. خاصیت HasFile در کنترل FileUpload مشخص می کند که آیا فایل انتخاب شده است یا نه.

محدودیت سایز فایل

بدلایل امنیتی سایز فایلهای بارگذاری شده اهمیت می یابد و بایستی بر محدودیت سایز فایل نظارت داشت. توسط خاصیت ContentLength میتوان سایز فایل را قرار است Upload شود چک کرد. برای نمونه کد زیر حجم فایل را چک کرده و قبل از بارگذاری مطمئن می شود که فایل کمتر از 3MB حجم دارد.

 If FileUpload1.PostedFile.ContentLength <= 3145728 Then savePath += FileUpload1.FileName FileUpload1.SaveAs(savePath) Response.Write("File uploaded successfully!") Else Response.Write("File size exceeds 3MB.") End If