آپلود عکس با Ajax در جی کویری با نوار پیشرفت

آپلود عکس با Ajax در جی کویری با نوار پیشرفت

همیشه توصیه می کنیم که در اپلکیشن ها برای افزایش رتبه UX , قسمت آپلود تصویر / فایل, یک نوار پیشرفت داشته باشد. که خب بیشتر توسعه دهنده ها این قابلیت رو نادیده می گیرند.

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

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

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

قبلا نحوه ساخت نوار پیشرفت داینامیک را برای آپلود فایل دیدیم. در این مثال, یک نوار پیشرفت انمیشنی را با jQuery به هنگام آپلود تصویر با AJAX را خواهیم دید.

 

از یک input فایل برای انتخاب تصویر و ارسال باینری های فایل به PHP از طریق اجکس استفاده کردیم. بعد از ارسال درخواست آپلود فایل به PHP , اسکریپت AJAX انیمیشن جی کویری را برای نمایش نوار پیشرفت آپلود, استارت می زند.

از پلاگین jQuery Form در این مثال برای مدیریت درخواست آپلود عکس با Ajax در جی کویری با نوار پیشرفت استفاده کردیم.

 

فرم HTML برای آپلود فایل تصویر

این صفحه یک فرم HTML را به همراه فیلد file را نمایش می دهد. کاربر می تواند فایل را انتخاب و داده های فایل را با سابمیت این فرم و از طریق AJAX ارسال کند.

jQuery و کتابخانه jQuery Form در اول فایل فراخوانی شدند. اسکریپت کوچک و ساده jQuery Validation نیز برای اینکه بررسی کند فایل تصویر انتخاب شده است یا خیر , نیز به این کد اضافه شده است.

درخواست AJAX به فایل PHP برای آپلود به همراه نوار پیشرفت (progressbar)

کتابخانه jQuery Form به منظور ارسال فرم با جی کوئری به همراه نوار پیشرفت استفاده شده است.

از تابع ajaxForm() برای ارسال باینری های فایل تصویر به PHP بهره بردیم. مقدار پیشرفت آپلود عکس با تابع بازگشتی uploadProgress نمایش داده می شود. همچنین, متد animate() جی کوئری برای ساخت افکت بر روی المنت نوار پیشرفت صدا زده شده است.

کد PHP آپلود فایل

این همان کد معمولی است که برای آپلود فایل در php استفاده کردیم. داده های فایل در آرایه سوپر گلوبال $_FILES ذخیره می شود. تابع move_uploaded_file() در php برای کپی فایل ارسال شده به فولدر موردنظر ما استفاده شده است.

خروجی – آپلود عکس با Ajax در جی کویری با نوار پیشرفت

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

آپلود عکس با Ajax در جی کویری با نوار پیشرفت

امیدوارم از آموزش آپلود عکس با Ajax در جی کویری با نوار پیشرفت نهایت استفاده را برده باشید و حتما سعی کنید برای توسعه اپلیکیشن های تحت وب خود, در پروژه ها از این قابلیت برای بخش آپلود استفاده کنید.

برای دانلود سورس کد کامل این آموزش از باکس دانلود استفاده کنید.

هر سوالی داشتید ، از قسمت نظرات ارسال کنید . سریعا ، پاسخگوی سوالات شما هستیم .

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

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

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

  1. زهرا ۸ شهریور ۱۴۰۰

    سلام من کد شما رو دانلود کردم و در هنگام اجرا با خطای زیر مواجه شدم چطوری این مشکل رو رفع کنم.؟؟؟

    HTTP Error 405.0 – Method Not Allowed

    پاسخ
    1. حسن شفیعی ۸ شهریور ۱۴۰۰

      سلام. در چه محیطی اجرا کردید ؟
      در لوکال هاست یا هاست واقعی

      پاسخ
      1. زهرا ۲۰ شهریور ۱۴۰۰

        لوکال هاست

        پاسخ
      2. زهرا ۲۰ شهریور ۱۴۰۰

        در ضمن برای اینکه در لوکال هاست بتونم جواب بگیرم . گزینه های CGi , fastcgi را در تنظیمات ‌iis فعال کردم . ولی باز هم با ارور روبرو شدم. چطوری میتونم اول روی لوکال هاست مطمئن بشم بعد روی هاست واقعی آپلود کنم؟

        پاسخ
      3. حسن شفیعی ۲۰ شهریور ۱۴۰۰

        احتمالا به خاطر ورژن php هست.
        در هنگام آپلود روی مرورگر f12 بزنید و بخش console و network باید بررسی کنید چه خطایی موجود هست

        پاسخ
  2. محمد مهدی شجاعیان ۶ اردیبهشت ۱۴۰۰

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

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