أحدث البرامج التعليمية وتطوير الشبكة
×

PHP البرنامج التعليمي

PHP الصفحة الرئيسية PHP مقدمة PHP تثبيت PHP بناء الجملة PHP المتغيرات PHP صدى / طباعة PHP أنواع البيانات PHP سلاسل PHP الثوابت PHP مشغلي PHP If...Else...Elseif PHP Switch PHP في حين حلقات PHP لحلقات PHP وظائف PHP المصفوفات PHP فرز المصفوفات PHP Superglobals

PHP معالجة

PHP شكل معالجة PHP شكل التحقق من صحة PHP شكل مطلوب PHP شكل URL/E-mail PHP شكل كامل

PHP متقدم

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

MySQL Database

MySQL قاعدة البيانات MySQL صلة MySQL Create DB MySQL Create الطاولة MySQL Insert Data MySQL الحصول على معرف آخر MySQL إدراج متعددة MySQL Prepared MySQL Select Data MySQL Delete Data MySQL Update Data MySQL Limit Data

PHP - XML

PHP XML موزعي PHP SimpleXML Parser PHP SimpleXML - Get PHP XML Expat PHP XML DOM

PHP - AJAX

AJAX مقدمة AJAX PHP AJAX قاعدة البيانات AJAX XML AJAX بحث حي AJAX قارئ آر إس إس AJAX صندوق الاقتراع

PHP Examples

PHP أمثلة PHP اختبار قصير PHP شهادة

PHP مرجع

PHP مجموعة PHP تقويم PHP تاريخ PHP دليل PHP خطأ PHP نظام الملفات PHP فلتر PHP FTP PHP HTTP PHP Libxml PHP بريد PHP الرياضيات PHP متفرقات PHP MySQLi PHP SimpleXML PHP خيط PHP XML PHP Zip PHP المناطق الزمنية

 

PHP تحميل الملف 5


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

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


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

أولا، تأكد من أن يتم تكوين PHP للسماح تحميل الملف.

في الخاص بك "php.ini" ملف، ابحث عن التوجيه file_uploads، وحدد لها في:

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 أعلاه:

  • تأكد من أن النموذج يستخدم أسلوب = "آخر"
  • يحتاج النموذج أيضا following السمة: enctype = "متعدد الأجزاء / شكل بيانات". وهي تحدد نوع المحتوى لاستخدامها عند تقديم النموذج

دون شروط أعلاه، فإن تحميل ملف لا يعمل.

أشياء أخرى لاحظ:

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

النموذج أعلاه يرسل البيانات إلى ملف يسمى "upload.php" ، وهو ما سيخلق المقبل.


إنشاء وتحميل ملف PHP سيناريو

و "upload.php" يحتوي الملف على التعليمات البرمجية لتحميل الملف:

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = 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/" - تحدد الدليل حيث الملف هو الذهاب الى وضعها
  • يحدد $ target_file مسار الملف المراد تحميله
  • $ uploadOk = 1 لا تستخدم حتى الآن (will be used later)
  • $ imageFileType يحمل امتداد الملف من ملف
  • بعد ذلك، معرفة ما اذا كان ملف الصورة هو الصورة الفعلية أو صورة وهمية

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


معرفة ما اذا كان موجود الملف إذا

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

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

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

حد حجم الملف

يدعى حقل الإدخال الملف في شكل HTML اعلاه "fileToUpload" .

الآن، ونحن نريد للتحقق من حجم الملف. إذا كان الملف أكبر من 500KB، يتم عرض رسالة خطأ، ويتم تعيين $ 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 = 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 ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
    } else {
        echo "Sorry, there was an error uploading your file.";
    }
}
?>

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

للإشارة كاملة من وظائف نظام الملفات، انتقل إلى لدينا كامل PHP نظام الملفات المرجعي .