الدالة is_uploaded_file()
في PHP
(PHP 4 >= 4.0.3, PHP 5, PHP 7)
تتحقَّق الدالة is_uploaded_file()
إن كان الملف مرفوعًا باستعمال HTTP POST.
الوصف
bool is_uploaded_file ( string $filename )
تعيد هذه الدالة القيمة TRUE
إن رُفع الملف الذي يُدعى filename
بوساطة HTTP POST، وهذا الأمر مفيد لأنَّه يساعد على التأكُّد من عدم احتيال المستخدمين الخبيثين على السكربت لإجباره على العمل على ملفات لا يُفترض العمل عليها مثل الملف /etc/passwd
.
هذا النوع من التحقُّق مهمٌّ جدًا إذ يساعد على التأكُّد من عدم وجود أي فرصة تسنح بالكشف عن محتوى الملفات المرفوعة للآخرين أو حتى المستخدمين الموجودين على النظام ذاته وذلك أثناء إجراء أي عمليَّة على تلك الملفات.
تحتاج الدالة is_uploaded_file()
من أجل العمل بطريقة صحيحة معاملًا مثل $_FILES['userfile']['tmp_name']
إذ إنَّ اسم الملف المرفوع على جهاز العميل $_FILES['userfile']['name']
لا يعمل آنذاك.
المعاملات
filename
مسار الملف المراد التحقُّق منه.
القيم المعادة
تُعاد القيمة TRUE
عند نجاح العمليَّة، أو القيمة FALSE
خلاف ذلك أو عند وجود خطأ.
أمثلة
المثال 1: استعمال الدالة is_uploaded_file()
<?php
if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
echo "File ". $_FILES['userfile']['name'] ." uploaded successfully.\n";
echo "Displaying contents\n";
readfile($_FILES['userfile']['tmp_name']);
} else {
echo "Possible file upload attack: ";
echo "filename '". $_FILES['userfile']['tmp_name'] . "'.";
}
?>
انظر أيضًا
- الدالة
move_uploaded_file()
: تنقل ملفًا مرفوعًا إلى موقع جديد. - .$_FILE
- راجع أيضًا التحكم برفع الملفات للاطلاع على المزيد من الأمثلة البسيطة شائعة الاستعمال.