رفع الملفات (File Upload)
استقبال الملفات من المستخدم
رفع الملفات يتطلب إعداداً خاصاً في نموذج HTML واستخدام مصفوفة خاصة في PHP تسمى $_FILES.
1. إعداد نموذج HTML
يجب إضافة الخاصية enctype="multipart/form-data" للنموذج، واستخدام method="POST".
<form action="upload.php" method="POST" enctype="multipart/form-data">
اختر صورة: <input type="file" name="myImage">
<input type="submit" value="رفع">
</form>
2. معالجة الملف في PHP
نستخدم الدالة move_uploaded_file() لنقل الملف من المجلد المؤقت إلى مجلد دائم في موقعك.
<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["myImage"]["name"]);
if (move_uploaded_file($_FILES["myImage"]["tmp_name"], $target_file)) {
echo "تم رفع الملف بنجاح!";
} else {
echo "عذراً، حدث خطأ أثناء الرفع.";
}
?>
أمن رفع الملفات
رفع الملفات هو أخطر ثغرة أمنية إذا لم يتم التعامل معها بحذر. اتبع دائماً هذه القواعد:
- تحقق من امتداد الملف (لا تسمح برفع ملفات
.phpأو.exe). - تحقق من حجم الملف (لا تسمح بملفات ضخمة جداً).
- قم بتغيير اسم الملف المرفوع لاسم عشوائي لتجنب استبدال ملفات أخرى.