السلام عليكم
تقريبا منذ الاصدار PHP 4.2.0 تقوم البي اتش بي بارجاع نوع الخطأ عند رفع الملف حتي عندما يتم رفع الملف بنجاح تقوم بارجاع قيمة الخطا = 0 عن طريق $_FILES['userfile']['error'].
ويمكن معرفه نوع الخطأ عن طريق رقم الخطأ او الثابت الخاص بالاخطاء كا الاتي:
UPLOAD_ERR_OK او 0 :
في هذة الحالة يعني ان لايوجد خطأ وان عملية الرفع تمت بنجاح.
UPLOAD_ERR_INI_SIZE او 1 :
تعني ان حجم الملف اكبر مما هو محدد في ملف php.ini وتحديدا دالة upload_max_filesize.
UPLOAD_ERR_FORM_SIZE او 2 :
تعني ان حجم الملف اكبر مما هوا تم تحديده في فورم الرفع مثلا عن طريق تحديد input باسم MAX_FILE_SIZE يحتوي علي حجم معين للرفع.
UPLOAD_ERR_PARTIAL او 3 :
تعني ان الملف رفع جزئيا فقط.
UPLOAD_ERR_NO_FILE او 4 :
تعني ان الملف غير موجود ليتم رفعه.
UPLOAD_ERR_NO_TMP_DIR او 6 :
تعني عدم العثور علي ملف temp المؤقت للرفع او مسار الوقت للرفع.
UPLOAD_ERR_CANT_WRITE او 7 :
فشل في رفع الملف وكتابته .
UPLOAD_ERR_EXTENSION او 8 :
الخطا تم نتيجة ايقاف رفع الملف من قبل php extension
انتهينا من قائمة الاخطاء.
الكثير يتسأل اين الخطأ 5 او مكان يعرف UPLOAD_ERROR_E
الخطا 5 تم تنحيته لانه ليس بخطأ اي انه عند رفع ملف لاحجم له size==0
وتنجح عمليه الرفع يظهر هذا الخطا ويمكن تجاوز هذا الخطا عن طريق التأكد من حجم الملف قبل الرفع
وهنا يمكن مشاهده التعديل الذي حدث من قبل فريق php
http://svn.php.net/viewvc/php/php-sr...79486&r2=81792
http://svn.php.net/viewvc/php/php-sr...87820&r2=88408
وبمكن مراجعه موقع php.net للمزيد من المعلومات
والسلام عليكم
المصدر : http://developer.ly/index.php?page=article&id=13