آپلود چندگانه فایل در php با Fine Uploader

آپلود چندگانه فایل در php با Fine Uploader

در این آموزش php , قصد داریم به شما نحوه آپلود چندگانه فایل در php را نشان بدیم . من از Fine Uploader که یک کتابخانه JavaScript رایگان و متن باز است , استفاده می کنم . fine-uploader هیچ وابستگی ندارد و بسیار ساده و قابل درک است .

همچنین یک نوار پیشرفت (progress bar) در هنگام آپلود نمایش می دهد و پیشنمایشی از عکس آپلود شده را در فرم گالری به کاربر نشان می دهد .

با استفاده از این کتابخانه , می توانیم گزینه های زیادی برای اعتبارسنجی اعمال کنیم مانند قابلیت حذف فایل , مکث و ادامه , اجازه تکه تکه کردن و غیره … .

در این مثال از آپلود چندگانه فایل در php با Fine Uploader از گزینه های بسیار کوچک و پایه برای مدیریت آپلود فایل در php و همچنین پیشنمایش فایل به کاربر استفاده می کنم.

آپلود چندگانه فایل در php با Fine Uploader

آموزش آپلود فایل توسط php بدون هیچ کتابخانه جدا را ببینید . همچنین آموزش آپلود چندگانه فایل توسط jquery,php و ajax را بدون استفاده از کتابخانه های آماده را مشاهده بفرمایید.

 

ساخت html و جاواسکریپت برای استفاده از FineUploader

آخرین ورژن FineUploader را دانلود و فایل های js , css مورد نیاز را در صفحه html خود فراخوانی کنید. من یک قالب گالری را که توسط این کتابخانه ارایه شده است را ساختم .

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

در این اسکریپت , من در گزینه endpoint فایل php را برای مدیریت ادامه مراحل آپلود فایل مشخص کردم . این قالب گالری و کلاس آپلود فایل در مثال FineUploader وجود دارند .

فایل php مدیریت آپلود فایل

فایل endpoint.php درخواست را دریافت و کلاس مورد نظر را مطابق درخواست فراخوانی می کند . که یک شی (object) از کلاس UploadHandler() با مقادیر پیشفرض می سازد . در اینجا ما نوع فایل ارسال شده از طریق پارامتر های ارسالی جاواسکریپت بررسی می کنیم .

دیدید به چه راحتی توانستیم یک آپلود چندگانه فایل در php با Fine Uploader را پیاده سازی کنیم . این کتابخانه آپشن های بسیار متنوع و جالبی دارد که با بررسی داکیومنت آن می توانید به دلخواه در پروژه هایی که می نویسید پیاده سازی کنید .

کدهای کامل پروژه آپلود چندگانه فایل در php با Fine Uploader را می توانید از باکس دانلود , دریافت کنید.

هر گونه مشکلی در پیاده سازی کدهای آپلود چندگانه فایل در php با Fine Uploader داشتید ، از قسمت نظرات اقدام کنید . سریعا ، پاسخگوی سوالات شما هستیم .

موفق و پیروز باشید.

حسن شفیعی توسعه دهنده وب و موبایل مدیر سایت علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم. اگر نیاز به برنامه نویس برای انجام پروژه و نوشتن اسکریپت های سمت وب, اپلیکیشن های اندروید و ios, پیدا کردن راه حل توسعه و غیره داشتید حتما از طریق تماس با ما/ واتساپ/ تلگرام بهم پیام بدید. برایتهیه هاست مطمین و پرسرعت کلیک کنید
مطالب زیر را حتما بخوانید
دیدگاه کاربران (۱۸)

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

  1. محمد کریمی ۳۱ مرداد ۱۳۹۸

    سلام استاد ببخشید من یه سوال داشتم من از این پلاگین واسه پروژه استفاده کردم الان می خواستم چه جوری می تونم مسیر عکس ها رو هم توی دیتابیس ذخیره کنم … باید کد های ذخیره رو توی کدوم فایل بنویسم … تشکر

    پاسخ
    1. حسن شفیعی ۳۱ مرداد ۱۳۹۸

      سلام. این عملیات را باید در فایل endpoint.php انجام بدید. تصویر داخل data ذخیره می شود و نام فایل را هم می توانید از فایل handler.php دریافت کنید
      موفق باشید.

      پاسخ
      1. محمد کریمی ۲ شهریور ۱۳۹۸

        سلام تشکر از جوابتون ممنون میشم نمونه کده اینکه چه جوری مسیر قایل در handler.php بگیرم رو بهم بگید .

        پاسخ
      2. حسن شفیعی ۲ شهریور ۱۳۹۸

        سلام. راهنمایی ها در حد نیاز انجام میشه تا بتونید تغییرات مورد نیاز رو طبق راهنمایی انحام بدید و کد آماده برای اینکار داده نمیشه.
        به هر حال داخل این فایل handler.php یک کلاس داریم که متد getUploadName() داخل آن, نام فایل آپلود شده را برگشت می دهد

        پاسخ
  2. arman ۲ مرداد ۱۳۹۷

    با سلام، یک مشکل عجیبی برام پیش اومد، عین همین فایل رو آپلود کردم در wamp و آپلود نمیکنه و ارور میده، حتی یک عکس رو آپلود نکرد، Upload failed شد

    پاسخ
    1. حسن شفیعی ۲ مرداد ۱۳۹۷

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

      موفق باشید.

      پاسخ
      1. arman ۲ مرداد ۱۳۹۷

        حق با شماست، مشکل از لوکال من بود، با تشکر از شما.

        پاسخ
  3. امیر ۱ مرداد ۱۳۹۷

    متاسفانه فایل index.php درزت اجرا نمیشه و صفحه سفید نشون میده

    پاسخ
    1. حسن شفیعی ۱ مرداد ۱۳۹۷

      سلام . به خاطر اینکه فایل template.html رو می خواست و وجود نداشت و همچنین با تابع require_once فراخوانی شده بود اجرا نمی شد که خب باید خطا نشون میداد ولی احتمالا در سمت شما خطاها مخفیه.

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

      موفق باشید.

      پاسخ
  4. امیر ۱ مرداد ۱۳۹۷

    سلام ممنون از آموزش خوبتون
    وقتی میخوام فایل را آپلود کنم این ارور را مید
    Error on file number 0 – vip0.jpg. Reason: Could not save uploaded file.The upload was cancelled, or server error encountered
    ممنون میشم اگه کمک کنید.

    پاسخ
    1. حسن شفیعی ۱ مرداد ۱۳۹۷

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

      پاسخ
  5. ایمان ۲۶ بهمن ۱۳۹۶

    سلام
    خسته نباشید و ممنون از سایت خوبتون.
    یک سوال در مورد دانلود داشتم.
    چطور ویدیو و اهنگ هایی پخش کنیم که قابل دانلود شدن نباشه؟
    مثل یوتیوب که نمیشه دانلود کرد و میخوام موزیک رو اینگونه انجام بدم.
    ممون میشم راهنمایی کنید.

    پاسخ
    1. حسن شفیعی ۲۶ بهمن ۱۳۹۶

      سلام . از stream wrapper ها در php استفاده کنید و همچنین header ها رو هم باید تغییر بدید
      https://netparadis.com/stream-wrapper-%d8%af%d8%b1-php/موفق باشید

      پاسخ
  6. احسان ۱۶ بهمن ۱۳۹۶

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

    پاسخ
    1. حسن شفیعی ۱۶ بهمن ۱۳۹۶

      سلام. خواهش می کنم خوشحالم که مفید بوده.
      برای اینکار لطفا خط ۴۵ فایل php رو تغییر بدید.

      خط ۱۴۵ فایل handler.php رو برای قرار دادن کمپرسور قبل از انتقال عکس از فولدر chunks و حالت temp قرار بدید

      موفق و پیروز باشید.

      پاسخ
      1. احسان ۱۷ بهمن ۱۳۹۶

        ممنون از پاسخ گوییتون. مشکل اول حل شد. ولی برای قرار دادن کمپرسور من از کمپرسور معرفی شده در این آدرس می خوام استفاده کنم(ADDRESS). هرچی سعی کردم نتونستم مقدار خروجی تابع کمپرسور رو برای ادامه مسیر به fineuploader بدم نتونستم. شرمنده بابت گرفتن مجدد وقتتون و اینکه می دونم موضوع این سوالم با عنوان آموزشتون فرق داره

        پاسخ
      2. حسن شفیعی ۱۹ بهمن ۱۳۹۶

        خواهش میکنم

        ببینید در تابع فوق کاری که انجام میشه ساخت دوباره عکس با استفاده از تابع imagejpeg است که حالا بعد از تشخیص mime_type این مورد پیش میره برای اضافه کردن این تابع بهتره فایل handler.php و خط

        $success = move_uploaded_file($_FILES[$this->inputName]['tmp_name'], $target);

        تغییر بدید و به جای $_FILES[$this->inputName]['tmp_name'] از خروجی تابع بالا که معرفی کردید استفاده کنید .

        موفق و پیروز باشید

        پاسخ
  7. احسان ۱۶ بهمن ۱۳۹۶

    سلام ممون از آموزشتون
    می خواستم ببینم چیجوری می تونم آدرس مسیر آپلود رو دریافت کنم؟ چون هر تصویر در یک فولدر جداگانه ذخیره می کنه و دوم اینکه چجوی می تونم کاری کنم که تو اون فولدر ذخیره نکنه و با اسم پیشنهادی خودم ذخیره کنه

    پاسخ
دوره های آموزشی