مهدی خانزادی
مهدی خانزادی
خواندن ۲ دقیقه·۶ سال پیش

آپلود فایل ها به صورت chunk و با قابلیت resume حتی بعد از باز و بسته کردن مرورگر با php

سلام به همه ی دوستان عزیز. در اینجا قصد دارم پکیجی که برای آپلود فایل نوشتم رو به شما دوستان معرفی کنم.

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

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

تا حالا سوالی مثل زیر رو از خودتون پرسیدین ؟

چرا ما یک فایل بزرگ مثلا فایلی با حجم ۵GB رو باید یکباره و یکجا برای سرور ارسال کنیم؟

ما میتونیم فایل رو به قسمت های کوچکتر تقسیم کنیم و اون قسمت ها رو که بهش chunk (تکه یا لقمه) میگن برای سرور بفرستیم. سرور این chunk ها رو دریافت میکنه و به هم میچسبونه و فایل نهایی ایجاد میشه ? اگه ما بتونیم اینکار رو انجام بدیم دیگه نیازی نداریم تا به تنظیمات سرور خودمون دست بزنیم همچنین فایل های حجیم رو بهتر میتونیم مدیریت کنیم و برای سرور بفرستیم.

یکی از مشکلات دیگه ای که سر راه اپلود فایل ها وجود داره ایجاد خطا یا قطع شدن ارتباط با سرور در هنگام اپلود فایل هست که این مشکل باعث میشه تا کاربر مجبور بشه فایل رو از اول اپلود کنه! حالا اگه حجم فایل زیاد باشه اعصاب کاربر بهم میریزه و اینکه کلی حجم یا ترافیک از اینترنتش از بین میره (با این وضعیت دلار :-| )

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

در اینجاست که بنده وارد عمل شدم و یک پکیج طراحی کردم که با استفاده از اون تمامی مواردی که تا اینجا گفتم رو میتونیم انجام بدیم :- D

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

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

composer require khanzadimahdi/uploadmanager

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

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

آپلود فایلبرنامه نویسی
مهدی خانزادی هستم برنامه نویس وب :-D
شاید از این پست‌ها خوشتان بیاید