آموزش آپلود فایل در php

آموزش آپلود فایل در php

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

در این آموزش قصد داریم به این ویژگی مهم در زبان PHP بپردازیم و ببینیم که چطور میتونیم در php فایلها رو آپلود کنیم.

 

پیشنیاز

آپلود فایل در php کار پیچیده ای نیست، ولی چند مورد هست که باید به آنها توجه کنید. در غیر این صورت احتمالا با مشکل مواجه میشوید.

اول از همه باید مطمئن بشید که تنظیمات آپلود فایل در php فعال است. برای اینکار فایل php.ini رو بررسی کنید تا مولفه file_uploads برابر on باشد.

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

کد html برای پیاده سازی سمت کاربر استفاده میشود. در المنت form از متد post  استفاده میکنیم. توجه داشته باشید که enctype برابر multipart/form-data است.

نکاتی در مورد کد بالا:

  • multipart/form-data  نوع داده ارسالی را مشخص میکند.
  • type="file" در تگ input مشخص میکند که فرم آپلود باید نمایش داده شود.
  • کد بالا داده های فرم را به سمت upload.php میکند که در قدم بعدی پیاده سازی میکنیم.

 

 کد نویسی قسمت PHP

فایل upload.php دارای کدهای زیر است:

توضیحات کد بالا

  • $target_dir = "uploads/" دایرکتوری که فایلها آنجا باید ذخیره شوند را مشخص میکند.
  • $target_file مسیر فایل آپلود شده را مشخص میکند.
  • $uploadOk=1 در ادامه کد استفاده خواهد شد.
  • $imageFileType پسوند فایل را نگه میدارد.
  • و بعد بررسی میکنیم که تصویر آپلود شده یک تصویر واقعی است یا خیر. (یک ترفند امنیتی)

 

حالا میتوانیم کمی به ویژگیهای کدمان اضافه کنیم. ولی قبل از آن بهتر است کمی بیشتر در مورد $_FILES بدانیم ?

  • $_FILES["fileToUpload"]["name"] نام اصلی فایل در سمت کاربر را در خود دارد.
  • $_FILES["fileToUpload"]["type"] نام mime-type فایل را در خود دارد.
  • $_FILES["fileToUpload"]["size"] سایز فایل را بر اساس بایت نمایش میدهد.
  • $_FILES["fileToUpload"]["tmp_name"] نام فایل موقت را دارد.
  • $_FILES["fileToUpload"]["error"]  هر خطایی که در هنگام انتقال فایل وجود داشته باشد را دارد.

بررسی وجود فایل از قبل

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

محدود کردن سایز فایل آپلود

توجه کنید که نام فیلد فایل در فرم HTML ما در fileToUpload  است. میخواهیم سایز فایل را بخوانیم و اگر از 500KB بیشتر بود یک پیغام خطا نمایش بدیم.

محدود کردن نوع فایل

کد زیر به کاربران اجازه میدهد که فقط فایلهایی با پسوند JPEG، JPG، PNG و GIF را آپلود کنند. هر فایل دیگری باعث میشود پیغام خطا نمایش داده شود.

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

کد کامل فایل upload.php به این صورت است:

توضیحاتی در مورد کد

  • move_uploaded_file() این تابع فایل آپلود شده را از مکان موقت به آدرس مقصد مورد نظر منتقل میکند.

پاسخی بگذارید

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