دروس PHP

PHP الرئيسية مقدمة PHP تثبيت PHP بناء جملة PHP تعليقات PHP متغيرات PHP PHP صدى / طباعة أنواع بيانات PHP سلاسل PHP أرقام PHP PHP الرياضيات ثوابت PHP مشغلي PHP PHP إذا ... آخر ... Elseif مفتاح PHP حلقات PHP وظائف PHP مصفوفات PHP PHP Superglobals PHP RegEx

نماذج PHP

معالجة نموذج PHP التحقق من صحة نموذج PHP نموذج PHP مطلوب نموذج PHP URL / البريد الإلكتروني اكتمل نموذج PHP

PHP متقدم

تاريخ ووقت PHP تضمين PHP معالجة ملفات PHP فتح / قراءة ملف PHP إنشاء / كتابة ملف PHP تحميل ملف PHP ملفات تعريف الارتباط PHP جلسات PHP مرشحات PHP مرشحات PHP متقدم وظائف رد الاتصال PHP PHP JSON استثناءات PHP

PHP OOP

PHP ما هو OOP فئات / كائنات PHP منشئ PHP مدمر PHP معدِّلات الوصول إلى PHP الوراثة PHP ثوابت PHP فئات مجردة PHP واجهات PHP سمات PHP طرق PHP الثابتة خصائص PHP الثابتة مساحات أسماء PHP PHP تكرارات

قاعدة بيانات MySQL

قاعدة بيانات MySQL اتصال MySQL إنشاء قاعدة بيانات MySQL إنشاء جدول MySQL MySQL إدراج البيانات MySQL الحصول على آخر معرف إدراج عدة MySQL تم تجهيز MySQL MySQL حدد البيانات MySQL أين ترتيب MySQL حسب MySQL حذف البيانات تحديث بيانات MySQL بيانات MySQL المحدودة

لغة PHP XML

موزعي PHP XML محلل PHP SimpleXML PHP SimpleXML - احصل على PHP XML Expat PHP XML DOM

PHP - أجاكس

مقدمة أجاكس أجاكس بي إتش بي قاعدة بيانات أجاكس AJAX XML بحث أجاكس لايف استطلاع أجاكس

أمثلة PHP

أمثلة PHP مترجم PHP اختبار PHP تمارين PHP شهادة PHP

مرجع PHP

نظرة عامة على PHP صفيف PHP تقويم PHP تاريخ PHP دليل PHP خطأ PHP استثناء PHP نظام ملفات PHP مرشح PHP PHP FTP PHP JSON كلمات PHP PHP Libxml PHP Mail PHP الرياضيات متفرقات PHP PHP MySQLi شبكة PHP التحكم في إخراج PHP PHP RegEx PHP SimpleXML PHP ستريم سلسلة PHP معالجة متغيرة PHP محلل PHP XML PHP Zip المناطق الزمنية PHP

تحميل ملف PHP


باستخدام PHP ، من السهل تحميل الملفات إلى الخادم.

ومع ذلك ، فإن الخطر يأتي مع السهولة ، لذا كن حذرًا دائمًا عند السماح بتحميل الملفات!


تكوين ملف "php.ini"

أولاً ، تأكد من تهيئة PHP للسماح بتحميل الملفات.

في ملف "php.ini" ، ابحث عن file_uploadsالأمر ، واضبطه على On:

file_uploads = On

قم بإنشاء نموذج HTML

بعد ذلك ، أنشئ نموذج HTML يسمح للمستخدمين باختيار ملف الصورة الذي يريدون تحميله:

<!DOCTYPE html>
<html>
<body>

<form action="upload.php" method="post" enctype="multipart/form-data">
  Select image to upload:
  <input type="file" name="fileToUpload" id="fileToUpload">
  <input type="submit" value="Upload Image" name="submit">
</form>

</body>
</html>

بعض القواعد التي يجب اتباعها في نموذج HTML أعلاه:

  • تأكد من أن النموذج يستخدم الطريقة = "نشر"
  • يحتاج النموذج أيضًا إلى السمة التالية: enctype = "multipart / form-data". تحدد نوع المحتوى الذي يجب استخدامه عند إرسال النموذج

بدون المتطلبات المذكورة أعلاه ، لن يعمل تحميل الملف.

أشياء أخرى يجب ملاحظتها:

  • تُظهر السمة type = "file" للعلامة <input> حقل الإدخال كعنصر تحكم في تحديد الملف ، مع وجود زر "تصفح" بجوار عنصر التحكم في الإدخال

يرسل النموذج أعلاه البيانات إلى ملف يسمى "upload.php" ، والذي سننشئه بعد ذلك.



قم بإنشاء ملف PHP Script

يحتوي ملف "upload.php" على الكود الخاص بتحميل الملف:

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
  $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
  if($check !== false) {
    echo "File is an image - " . $check["mime"] . ".";
    $uploadOk = 1;
  } else {
    echo "File is not an image.";
    $uploadOk = 0;
  }
}
?>

شرح نص PHP:

  • $ target_dir = "uploads /" - يحدد الدليل حيث سيتم وضع الملف
  • يحدد ملف الهدف $ مسار الملف المراد تحميله
  • $ uploadOk = 1 لم يتم استخدامه بعد (سيتم استخدامه لاحقا)
  • يحتفظ $ imageFileType بامتداد الملف (بأحرف صغيرة)
  • بعد ذلك ، تحقق مما إذا كان ملف الصورة صورة فعلية أم صورة مزيفة

ملاحظة: سوف تحتاج إلى إنشاء دليل جديد يسمى "uploads" في الدليل حيث يوجد ملف "upload.php". سيتم حفظ الملفات التي تم تحميلها هناك.


تحقق مما إذا كان الملف موجودًا بالفعل

الآن يمكننا إضافة بعض القيود.

أولاً ، سوف نتحقق مما إذا كان الملف موجودًا بالفعل في مجلد "التحميلات". إذا حدث ذلك ، فسيتم عرض رسالة خطأ ، ويتم تعيين $ uploadOk على 0:

// Check if file already exists
if (file_exists($target_file)) {
  echo "Sorry, file already exists.";
  $uploadOk = 0;
}

تحديد حجم الملف

يسمى حقل إدخال الملف في نموذج HTML أعلاه "fileToUpload".

الآن ، نريد التحقق من حجم الملف. إذا كان الملف أكبر من 500 كيلو بايت ، يتم عرض رسالة خطأ ويتم تعيين $ uploadOk على 0:

// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
  echo "Sorry, your file is too large.";
  $uploadOk = 0;
}

تحديد نوع الملف

يسمح الكود أدناه للمستخدمين فقط بتحميل ملفات JPG و JPEG و PNG و GIF. تظهر جميع أنواع الملفات الأخرى رسالة خطأ قبل تعيين $ uploadOk على 0:

// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
  echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
  $uploadOk = 0;
}

أكمل تحميل ملف PHP النصي

يبدو ملف "upload.php" الكامل الآن كما يلي:

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));

// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
  $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
  if($check !== false) {
    echo "File is an image - " . $check["mime"] . ".";
    $uploadOk = 1;
  } else {
    echo "File is not an image.";
    $uploadOk = 0;
  }
}

// Check if file already exists
if (file_exists($target_file)) {
  echo "Sorry, file already exists.";
  $uploadOk = 0;
}

// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
  echo "Sorry, your file is too large.";
  $uploadOk = 0;
}

// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
  echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
  $uploadOk = 0;
}

// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
  echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
  if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
    echo "The file ". htmlspecialchars( basename( $_FILES["fileToUpload"]["name"])). " has been uploaded.";
  } else {
    echo "Sorry, there was an error uploading your file.";
  }
}
?>

مرجع نظام ملفات PHP الكامل

للحصول على مرجع كامل لوظائف نظام الملفات ، انتقل إلى مرجع نظام ملفات PHP الكامل .