Filepond: لایبرری جاوااسکریپتی و انعطاف‌پذیر برای آپلود فایل

Filepond: لایبرری جاوااسکریپتی و انعطاف‌پذیر برای آپلود فایل

Filepond یک لایبرری توسعه داده‌ شده با زبان جاوااسکریپت است که به دولوپرها این امکان را می‌‌دهد تا با استفاده از آن، هر نوع فایلی را روی سرور آپلود کنند. همچنین این لایبرری اندازۀ تصاویر را به‌ منظور افزایش سرعتِ آپلود آن‌ها بهینه می‌‌کند و ویژگی‌های کاربردی آن منجر به ایجاد یک #تجربهٔ کاربری منحصربه‌فرد برای کاربران می‌‌شود.

مهم‌ترین قابلیت‌های لایبرری Filepond
این لایبرری قابلیت آپلود فایل با فرمت‌‌های مختلف را دارا است. در همین راستا، این امکان را برای کاربران فراهم می‌‌سازد تا بتوانند فایل‌ها را به روش‌های مختلف آپلود نمایند. به عبارتی، کاربران می‌توانند خود فایل را به صورت لوکال آپلود کرده یا آدرس فایل را به صورت یوآرال‌های لوکال، ریموت، دیتا یوآر‌‌آی و یا از طریق دایرکتوری‌ها وارد کنند؛ همچنین قابلیت آپلود فایل با فرمت بلاب نیز وجود دارد (Data URI یک رشته است که به‌ صورت دیتای base64 اِنکود شده و نشان دهندۀ یک فایل است. BLOB مخفف عبارت Binary Large Object است و به فایل‌‌های عظیم مانند یک عکس یا یک فایل صوتی و غیره دلالت دارد که به دلیل سایز متفاوت این فایل‌‌ها، باید آن‌‌ها را با روش‌‌های خاص هَندل -یا به عبارتی آپلود، دانلود یا ذخیره در دیتابیس- کرد).

همچنین در این لایبرری روش‌‌های مختلفی برای آپلود فایل‌‌ها ارائه‌ شده است؛ به عبارت دیگر، کاربران می‌‌توانند این فایل‌‌ها را با روش درگ & دراپ، انتخاب فایل از فایل‌‌سیستم، کپی/پیست فایل‌‌ها یا از طریق ای‌‌پی‌‌آی آپلود کنند. همچنین با استفاده از این لایبرری، کاربران می‌‌توانند به‌ صورت اصطلاحاً Async (غیر هم‌زمان) و یا Sync (هم‌‌زمان)، اقدام به آپلود فایل نمایند (در روش اول یا غیر هم‌زمان، فایل‌‌ها با استفاده از فناوری Ajax و از طریق ای‌‌پی‌‌آی XMLHttpRequest به سمت سرور ارسال می‌‌شوند اما در روش هم‌‌زمان، فایل‌‌ها به‌ صورت دیتای اصطلاحاً base64 اِنکود شده ذخیره شده و با استفاده از متد POST به سمت سرور ارسال می‌‌شوند).

این لایبرری به‌ منظور بهینه‌‌سازی تصاویر، قابلیت تغییر اندازۀ تصاویر را به‌ صورت خودکار دارا است و آن‌ها را در سمت کلاینت و قبل از ارسال به سمت سرور، برش داده و زاویۀ EXIF تصاویر را تصحیح می‌کند (این تصحیح به این دلیل انجام می‌شود که در صورت لزوم، تصاویری که با دیوایس‌‌هایی همچون موبایل گرفته‌ شده‌اند نیز قابل آپلود باشند) که این امر موجب صرفه‌جویی در پهنای باند سرور شده و سرعت آپلود تصاویر را به میزان قابل‌توجهی افزایش می‌‌دهد.

در پایان هم لازم است تأکید کنیم که لایبرری Filepond ریسپانسیو (واکنش‌گرا) است و با توجه به فضای موجود، به‌ صورت خودکار تغییر اندازه می‌دهد و همین مسئله موجب شده است تا این لایبرری قابلیت به‌‌کارگیری در دیوایس‌‌های دسکتاپ و همچنین دیوایس‌‌های موبایل را داشته باشد (همچنین لازم به ذکر است که رابط کاربری آن با کیبورد قابل‌استفاده است).



اکرم امراه‌نژاد