امروز با AjaxFileUpload Control سری مقالات AJAX Control ToolKit آشنا خواهیم شد.
از آنجایی که این کنترل آپلود فایل Ajax است، به این معنی که فایلهایی که بدون پسبازگشت، تازهسازی یا بارگذاری مجدد آگهی صفحه روی سرور آپلود میشوند، تجربه کاربری بهتری نسبت به کنترلهای فایل پسبازگشت سمت سرور به کاربر میدهد.
در اینجا می توانید با قسمت های قبلی من آشنا شوید:
بهترین ویژگی ها در این میان این است که از قابلیت کشیدن و رها کردن پشتیبانی می کنند و همچنین می توانید چندین فایل را در یک زمان با حداکثر اندازه 1 (GB) فایل آپلود کنید.
در زیر ویژگی های کنترل آپلود فایل Ajax آورده شده است:
- از قابلیت کشیدن و رها کردن پشتیبانی می کند
- نمایش نوار پیشرفت آپلود فایل (بستگی به پشتیبانی از HTML5 در مرورگر دارد)
- اطلاعات فایل مانند اندازه فایل و نام فایل آپلود شده را نمایش دهید.
- پشتیبانی از آپلود فایل با اندازه بزرگ تا 1 گیگابایت
- پشتیبانی از آپلود چند فایل
- تکه تکه شدن فایل سمت کلاینت
در این دوره مدرن تقریباً هر مرورگر دارای سازگاری با HTML5 است و نوار پیشرفت فقط به آن بستگی دارد، در بین مرورگرهایی که یا از HTML5 پشتیبانی می کنند یا نه، رفتار متفاوتی دارد.
اگر مرورگر با HTML5 سازگاری با نوار آپلود فایل پیشرفت نشان داده شده در سمت سرویس گیرنده دارد، اگر پشتیبانی نمی شود، باید منتظر بماند تا سرور آماده پذیرش فایل از طریق نظرسنجی باشد.
یکی از بهترین ویژگی های کنترل آپلود فایل AJAX، قابلیت Drag and Drop است که با کشیدن از هر منبعی و رها کردن کنترل پنل، ما را راحت می کند. با کشیدن و رها کردن میتوانید چندین فایل را که قرار است کشیده شود انتخاب کنید. همچنین می توانید چندین فایل را با استفاده از کلیدهای صفحه کلید مانند کلید SHIFT یا Ctrl انتخاب کنید.
یکی دیگر از موارد وقت گیر این است که انواع فایل ها را بررسی کنیم تا در کد مجاز یا محدود شوند، زیرا باید پسوند فایل را دریافت کنیم و با نشان دادن پیام سفارشی در UI، با کد بررسی کنیم که آیا از پسوند پشتیبانی می کند یا نه. اما اکنون کنترل آپلود فایل Ajax با استفاده از propertiesAllowedFileTypes که میتواند انواع فایلهایی را که مجاز به آپلود هستند بررسی کند، سهولت را به ارمغان میآورد. سینتکس آسان است که باید با جدا کردن پسوند فایل با کاما در برابر این ویژگی ذکر کنید. مانند این jpg، png، gif، docx.
یکی دیگر از ویژگی های خوب (MaximumNumberOfFiles) این است که اجازه می دهد تعداد فایل ها در یک زمان آپلود شوند.
آپلود فایل AJAX از هندلرهای استفاده شده برای آپلود فایل در سرور استفاده میکند، در ابتدا در این مقاله درباره نحوه اضافه کردن کنترلکنندهها به فایل پیکربندی بحث خواهیم کرد.
آپلود فایل AJAX با قرار دادن فایلها در پوشه موقت، بافرهایی را که قرار است روی سرور آپلود شوند کنترل میکند و در نهایت هنگامی که رویدادهای فایل کامل بالا میرود، فایل را به مسیر مقصد منتقل میکند و اگر از SaveAs() استفاده شود، بهطور خودکار فایلهای موقت را حذف کرده و منتقل میکند. به مقصد اصلی اگر از متد SaveAs استفاده نمی شود، باید متد AjaxFileUploadEventArgs.DeleteTemporaryData() را برای حذف فایل موقت فراخوانی کنید.
تعدادی از ویژگیها، رویدادها و روشهای مرتبط با این کنترل وجود دارد که با مثال در مورد هر یک خواهیم آموخت.
بنابراین اجازه دهید ابتدا مدیریت فایل پیکربندی را شروع کنیم که وظیفه آپلود فایل در سرور را انجام می دهد.
تنظیم محیط شامل اضافه کردن کنترل کننده و همچنین قرار دادن آیتم کنترلی به صفحه است.
افزودن Handler به پیکربندی وب
کنترل AjaxFileUpload از یک HTTP Handler به نام AjaxFileUploadHandler.axd استفاده می کند . این کنترلر دارای نوع AjaxControlToolkit.AjaxFileUploadHandler است . شما باید این کنترلر را به فایل Web.Config خود اضافه کنید تا کنترل AjaxFileUpload کار کند.
در اینجا کدی است که باید در <System.Webserver> و داخل بخش <handlers> قرار گیرد.
این تنظیمات پیکربندی برای IIS 7 یا بالاتر است.
- <system.webServer>
- <handlers>
- <add name="AjaxFileUploadHandler" verb="*" path="AjaxFileUploadHandler.axd" type="AjaxControlToolkit.AjaxFileUploadHandler,
- AjaxControlToolkit" />
- </handlers>
- </system.webServer>
پس از پیکربندی، کد زیر را در صفحه aspx خود قرار می دهیم که کنترل آپلود فایل را در مرورگر نشان می دهد.