دیجی اسکریپت

bulk upload file usign php Archives | دیجی اسکریپت

آپلود فایل های حجیم به صورت chunk با قابلیت resume در PHP
[ad_1]

آپلود کردن فایل ها شاید یکی از مشکلات همه ی ما برنامه نویس های سمت سرور باشه. مشکلات زیادی سر راه یک فایل وجود داره تا بخواد به صورت صحیح و کامل اپلود بشه! کار جایی سخت میشه که حجم فایل زیاد باشه و برای اپلود فایل های بزرگ میدونید که نیاز داریم تا تنظیماتی رو روی سرور انجام بدیم تا بتونه فایل های حجیم رو دریافت و اپلود کنه.

تا حالا از خودتون پرسیدین که چرا ما یک فایل بزرگ مثلا فایلی با حجم ۵GB رو باید یکباره و یکجا برای سرور ارسال کنیم؟ ما میتونیم فایل رو به صورت قسمت های کوچکتر تقسیم کنیم و اون قسمت ها رو که بهش chunk (تکه یا لقمه) میگن برای سرور بفرستیم. سرور این chunk ها رو دریافت میکنه و به هم میچسبونه و فایل نهایی ایجاد میشه 🙂 اگه ما بتونیم اینکار رو انجام بدیم دیگه نیازی نداریم تا به تنظیمات سرور خودمون دست بزنیم.

یکی از مشکلات دیگه ای که سر راه اپلود فایل ها وجود داره ایجاد خطا یا قطع شدن ارتباط با سرور در هنگام اپلود فایل هست که این مشکل باعث میشه تا کاربر مجبور بشه فایل رو از اول اپلود کنه! حالا اگه حجم فایل زیاد باشه اعصاب کاربر بهم میریزه و اینکه کلی حجم یا ترافیک از اینترنتش از بین میره.

برای مقابله با این کار میتونیم سیستم اپلود رو طوری طراحی کنیم که کاربر بتونه تا هرجایی که فایل رو میشه اپلود کنه و باقی فایل رو در یک زمان مناسب تر اپلود کنه یا در مواقع بروز خطا دیگه مجبور نباشه از اول فایل رو اپلود کنه بلکه فایل رو از ادامه ی جایی که در دفعه ی قبل اپلود شده اپلود میکنه.

دوستان عزیز من یک package برای php طراحی کردم که با استفاده از اون میتونید به راحتی عملیات chunk و resume رو در php انجام بدید. این پکیج رو میتونید از گیتاب من دانلود(کلیک کنید) و استفاده کنید. درون این پکیج در پوشه ی Examples میتونید نمونه مثال ها رو ببینید. بهترین مثالی که میتونید ببینید و اون رو اجرا کنید درون پوشه ی resumable-chunk-upload قرار داره.

برای نصب این پکیج میتونید از دستور زیر در کامپوزر استفاده کنید:

composer require khanzadimahdi/uploadmanager

اگه از این پکیج استفاده میکنید لطفا به پکیج امتیاز بدید (توی github روی اون ستاره ای که بالای صفحه سمت راست هست کلیک کنید).

دوستانی که سوال یا مشکلی دارند میتونن از انتهای همین پست مطرح کنند تا پاسخ بگیرن. موفق باشید.

[ad_2]

لینک منبع مطلب