اعتبارسنجی تصاویر در PHP هنگام آپلود

  • آپدیت شده در تاریخ

اعتبارسنجی تصاویر در PHP هنگام آپلود

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

امکان اکسپلویت کردن قسمت آپلود فایل با کدهای مخربی مثل شلر های php بسیار زیاد است.بنابراین پیاده سازی نادرست این بخش می تواند آسیب پذیری امنیتی را افزایش دهد.

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

اگر قصد داریم در فرم از کاربر فایل pdf و یا jpg دریافت کنیم و همچنین حجم و موارد غیره را بررسی کنیم, نیاز است تمامی این ها را با کدنویسی سمت سرور (تاکید می کنم اعتبارسنجی سمت کلاینت کافی نیست و قابل دور زدن هست) اعتبارسنجی کنیم.

برای آشنایی با اعتبارسنجی در php این آموزش را نیز مطالعه کنید

من یک فرم HTML به همراه input آپلود فایل ایجاد کردم. زمانی که فرم سابمیت می شود, باینری تصویر برای اعتبارسنجی سمت سرور (server-side) به php ارسال می شود.

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

 

اعتبارسنجی تصاویر در PHP (سمت سرور) هنگام آپلود جنبه های زیر را بررسی می کند

  • اگر فایل خالی نباشد یعنی فایلی از سمت کاربر ارسال شده باشد
  • اگر پسوند فایل جز یکی از .jpg, .png, .jpeg ها باشد.
  • اگر حجم فایل کمتر یا مساوی ۲مگابایت باشد.
  • اگر ابعاد تصویر در ۳۰۰x200 باشد.

 

فرم HTML به همراه input فایل

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

 

کد PHP برای اعتبارسنجی و آپلود عکس

در این کد php , ما نوع فایل (file-type) , حجم (size) و ابعاد (dimension) را قبل آپلود اعتبارسنجی می کنیم. داده های فایل آپلود شده مانند نام, اندازه, مسیر موفقت در آرایه سراسری $_FILES[‘image_file’] قرار دارند.

تابع move_uploaded_file در php برای آپلود فایل با دسترسی به داده های آرایه سوپرگلوبال $_FILES استفاده می شود. همچنین از تابع getimagesize() برای دیافت اطلاعات حجم فایل به منظور اعتبارسنجی تصویر استفاده کردیم.

من پسوندهای مجاز فایل تصویر را در یک آرایه قرار داده و پسوند فایل های آپلود شده را با این آرایه و انجام می دهم (استفاده از تابع in_array برای بررسی یک رشته در یک آرایه). شما می توانید این آرایه را بنابر نیاز خود تغییر و پسوندهای جدید اضافه کنید.

بعد از اعتبارسنجی موفق, از تابع move_uploaded_file() در php برای ذخیره تصویر یا فایل در مسیر مشخص شده, بهره می بریم.

خروجی – اعتبارسنجی تصاویر در PHP هنگام آپلود

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

اعتبارسنجی تصاویر در PHP هنگام آپلود

امیدوارم از آموزش اعتبارسنجی تصاویر در PHP استفاده مفید را برده باشید.

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

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

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

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

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

دوره های آموزشی