أنشئ حسابًا أو سجّل الدخول للانضمام إلى مجتمعك المهني.
رفع الملفات باستخدام لغة php .
نموذج HTML :
في البداية عند إنشاء نموذج HTML يجب تحديد الطريقة post كالطريقة التي سيتم ارسال البيانات فيها , بالإضافة الى وضع ترميز النموذج "multipart/form-data" بدلا من الترميز الإفتراضي "application/x-www-form-urlencoded" كمثال على ذلك , نموذج HTML البسيط التالي :
<formaction="file_upload.php"method="post"enctype="multipart/form-data"><inputtype="file"name="file1"><inputtype="submit"></form>لاحظ نوع الحقل type="file" في الوسم input .المصفوفة $_FILES :تُخزن هذه المصفوفة معلومات عن الملف أو الملفات التي تم رفعها الى الخادم . و بشكل عام هذه الصفوفة ثنائية البعد (تم التطرق الى المصفوفات متعددة الأبعاد في درس المصفوفات و الدوال) حيث يُعبر البعد الأول عن اسم حقل الملف المُحدد في حقل الملف في نموذج HTML (سيتم اعتماد file1 كأسم لحقل الملف في الأمثلة القادمة) . أما البُعد الثاني , فيوفر معلومات عن اسم الملف أو حجمه أو نوعه أو رسالة الخطأ في حال وجودها ...- القيمة $_FILES['file1']['name'] : يُحدد هذا المتغير اسم الملف الأصلي كما هو في جهاز المستخدم .- القيمة $_FILES['file1']['size '] : كما هو واضح من الأسم , تُحدد هذه القيمة حجم الملف الذي تم رفعه مقدرا ً بالبايت , لذا قد تحتاج الى قسمة هذا الرقم على1024 أو 1024^2 للحصول على حجم الملف مقدرا ً بالكيلوبايت أو الميغابايت على التوالي .- القيمة $_FILES['file1']['type'] : تُحدد هذه القيمة ما يُسمى MIME type للملف الذي تم رفعه , فمثلا ً تكون قيمة MIME type لملف من صيغة png : image/png , أو لملف pdf : application/pdf , ملف مضغوط من نوع zip : application/zip ...- القيمة $_FILES['file1']['tmp_name'] : تُحدد هذه القيمة اسم الملف المؤقت المُخزن على الخادم , وسيتم استخدام هذه القيمة كثيرا ً عند استدعاء الدوال الخاصة برفع الملفات كما سنرى لاحقا ً .- القيمة $_FILES['file1']['error'] : لا يمكن أبدا ً ضمان سير عملية رفع ملف على الخادم بشكل صحيح , وبعض الأحيان تكون هنالك مشكلة في رفع الملفات و من المُفيد معرفتها و تبليغ المستخدم عن سبب الخطأ , حيث تُعيد القيمة $_FILES['file1']['error'] رقم رسالة الخطأ أو الثابت الموافق لها . و هذه اشهرها :الرقم0 UPLOAD_ERR_OK : يُعيد المتغير $_FILES['file1']['error'] هذه القيمة عندما تتم عملية رفع الملف بنجاح دون أي أخطاء .الرقم1 UPLOAD_ERR_INI_SIZE : يُعيد المتغير $_FILES['file1']['error'] هذه القيمة عندما يتم رفع ملف حجمه يتجاوز الحجم المسموح به المُحدد بالراية upload_max_filesize الموجودة في ملف php.ini .الرقم3 UPLOAD_ERR_PARTIAL : يتم إعادة هذه القيمة عند رفع جزء من الملف وعدم تكمن من رفعه كاملا ً كحدوث مشكلة في الشبكة ...الرقم4 UPLOAD_ERR_NO_FILE : يتم إعادة هذه القيمة عندما يقوم المُستخدم من ارسال نموذج HTML دون تحديد ملف لكي يتم رفعه .وبالطبع يمكن التحقق من رسالة الخطأ أما باستخدام الأرقام أو بمساواتهم بالثوابت السابقة , مثال يقوم بطباعة حالة رفع ملف :
<?php switch($_FILES['file1']['error']){case UPLOAD_ERR_OK: echo "File uploaded succesfuly";break;case UPLOAD_ERR_INI_SIZE: echo "Uploaded File is too big";break;case UPLOAD_ERR_PARTIAL : echo "File is not completely uploaded";break;case UPLOAD_ERR_NO_FILE : echo "No File was Selected";break;default: echo "UnKnown Error";break;}?>و يقوم متصفح المُستخدم بارسال اسم الملف الأصلي ونوعه في HTTP header , وبالتالي فليس من المُفضل التحقق من نوع الملف عن طريق $_FILES['file1']['type'] و عوضا ً عن ذلك نقوم بإستخراج إمتداد الملف والتحقق منه .
هناك طريقة قديمه
وهناك طريقة جديدة على
--------
واي استفسار اخي الكريم انا جاهز
علاء جدوع