من خلال PHP، يمكن تحميل الملفات إلى الخادم.
تم استكمال الأمثلة الواردة في هذا الفصل ضمن مشروع الاختبار، وبنية الدليل هي:
test|-----upload # دليل تحميل الملفات|-----form.html # ملف النموذج|-----upload_file.php # كود تحميل PHP
يعد السماح للمستخدمين بتحميل الملفات من النموذج أمرًا مفيدًا للغاية.
ألق نظرة على نموذج HTML التالي لتحميل الملفات:
<html><head><meta charset="utf-8"><title>البرنامج التعليمي للمبرمج (codercto.com)</title></head><body><form action="upload_file.php" Method=" post " enctype="multipart/form-data"> <label for="file">اسم الملف:</label> <input type="file" name="file" id="file"><br> <نوع الإدخال ="إرسال" الاسم = "إرسال" value="إرسال"></form></body></html>
احفظ الكود أعلاه في ملف form.html.
بعض الملاحظات حول نموذج HTML أعلاه مذكورة أدناه:
تحدد سمة enctype للعلامة <form> نوع المحتوى الذي سيتم استخدامه عند إرسال النموذج. عندما يتطلب النموذج بيانات ثنائية، مثل محتوى الملف، استخدم " بيانات النموذج/الأجزاء المتعددة ".
تحدد السمة type = "file" للعلامة <input> أنه يجب معالجة الإدخال كملف. على سبيل المثال، عند المعاينة في المتصفح، سترى زر تصفح بجوار مربع الإدخال.
ملاحظة: يعد السماح للمستخدمين بتحميل الملفات بمثابة مخاطرة أمنية كبيرة. الرجاء السماح فقط للمستخدمين الموثوق بهم بإجراء عمليات تحميل الملفات.
يحتوي الملف "upload_file.php" على كود لتحميل الملفات:
<?phpif ($_FILES["file"]["error"] > 0){ echo "Error:" $_FILES["file"]["error"] . "<br>";}else{ echo " . تحميل اسم الملف: " . $_FILES["file"]["name"] . "<br>"; echo "نوع الملف: " . $_FILES["file"]["type"] . "<br>"; echo "حجم الملف: " . ($_FILES["file"]["size"] / 1024) " echo "الموقع الذي تم تخزين الملف فيه مؤقتًا: " . $_FILES[ "ملف"]["tmp_name"];}?>
باستخدام المصفوفة العامة الخاصة بـ PHP $_FILES، يمكنك تحميل الملفات من جهاز الكمبيوتر العميل إلى خادم بعيد.
المعلمة الأولى هي اسم الإدخال للنموذج، ويمكن أن يكون الحرف الثاني "اسم" أو "نوع" أو "حجم" أو "tmp_name" أو "خطأ". كما هو موضح أدناه:
$_FILES["file"]["name"] - اسم الملف الذي تم تحميله
$_FILES["file"]["type"] - نوع الملف الذي تم تحميله
$_FILES["file"]["size"] - حجم الملف الذي تم تحميله بالبايت
$_FILES["file"]["tmp_name"] - اسم النسخة المؤقتة من الملف المخزن على الخادم
$_FILES["file"]["error"] - رمز الخطأ الناتج عن تحميل الملف
هذه طريقة بسيطة جدًا لتحميل الملفات. لأسباب أمنية، يجب عليك إضافة قيود على الأشخاص المسموح لهم بتحميل الملفات.
في هذا البرنامج النصي، نضيف قيودًا على تحميل الملفات. يمكن للمستخدمين فقط تحميل ملفات .gif و.jpeg و.jpg و.png، ويجب أن يكون حجم الملف أقل من 200 كيلو بايت:
<?php// لاحقات الصور المسموح بها $allowedExts = array("gif", "jpeg", "jpg", "png");$temp =تفجير(".", $_FILES["file"][" name "]);$extension = end($temp); // احصل على لاحقة الملف if ((($_FILES["file"]["type"] == "image/gif")|| ($_FILES["file"]["type"] == "image/jpeg")||.$_FILES["file"]["type"] == "image/jpg")||. "file"]["type"] == "image/pjpeg")||.$_FILES["file"]["type"] == "image/x-png")|| ($_FILES["file"]["type"] == "image/png"))&& ($_FILES["file"]["size"] < 204800) // أقل من 200 كيلو بايت&& in_array($extension, $allowExts)){ if ($_FILES["file"]["error"] > 0) { echo "Error:: " . $_FILES["file"]["error"] . "<br>"; } else { echo "تحميل اسم الملف: " "نوع الملف: " . $_FILES["file"]["type"] . "<br>"; echo "حجم الملف: " ($_FILES["file"]["size"] / 1024) . " kB<br>"; echo "الموقع الذي تم تخزين الملف فيه مؤقتًا: " . $_FILES["file"]["tmp_name"];
يقوم المثال أعلاه بإنشاء نسخة مؤقتة من الملف الذي تم تحميله في المجلد المؤقت PHP الخاص بالخادم.
ستختفي هذه النسخة المؤقتة عند انتهاء البرنامج النصي. لحفظ الملف الذي تم تحميله، نحتاج إلى نسخه إلى موقع آخر:
<?php// لاحقات الصور المسموح بها $allowedExts = array("gif", "jpeg", "jpg", "png");$temp =تفجير(".", $_FILES["file"][" name "]);echo $_FILES["file"]["size"];$extension = end($temp); // احصل على لاحقة الملف إذا ((($_FILES["file"]["type"] == "image/gif")|| ($_FILES["file"]["type"] == "image/jpeg")|| ($ _FILES["file"]["type"] == "image/jpg")||.$_FILES["file"]["type"] == "image/pjpeg")|| ($_FILES["file"]["type"] == "image/x-png")||.$_FILES["file"]["type"] == "image/png"))&& ($ _FILES["file"]["size"] < 204800) // أقل من 200 كيلو بايت&& in_array($extension, $allowedExts)){ if ($_FILES["file"]["error"] > 0) { echo "Error: " $_FILES["file"]["error"] . "<br>" } else { echo "تحميل اسم الملف : " . $_FILES["file"]["name"] . "<br>"; echo "نوع الملف: " . $_FILES["file"]["type"] . "<br>"; echo "حجم الملف: " . ($_FILES["file"]["size"] / 1024) . "kB<br>"; echo "الموقع الذي تم تخزين الملف فيه مؤقتًا: " $_FILES["file"] ["tmp_name "] . "<br>"; // تحديد ما إذا كان الملف موجودًا في دليل التحميل ضمن الدليل الحالي // إذا لم يكن هناك دليل تحميل، فيجب إنشاء إذن الدليل 777 (file_exists("upload/" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . "الملف موجود بالفعل. "; } else { // إذا كان الملف غير موجود في دليل التحميل، فقم بتحميل الملف إلى دليل التحميل move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file" "][ "name"]); echo "يتم تخزين الملف في: " . "upload/" . $_FILES["file"]["name"]; } }}else{ echo "تنسيق الملف غير قانوني"؛}؟>
يتحقق البرنامج النصي أعلاه مما إذا كان الملف موجودًا بالفعل، وإذا لم يكن موجودًا، فإنه ينسخ الملف إلى دليل يسمى "تحميل".