Start networking and exchanging professional insights

Register now or log in to join your professional community.

Follow

كيفية رفع ملف فيديو على الموقع باستخدام php?

user-image
Question added by Mohamed Ahmed
Date Posted: 2014/09/23

رفع الملفات باستخدام لغة 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'] و عوضا ً عن ذلك نقوم بإستخراج إمتداد الملف والتحقق منه .

Alaa M. Jaddou
by Alaa M. Jaddou , CEO , Aj Design & Develop

هناك طريقة قديمه

بي اتش بي4

وهناك طريقة جديدة على

بي اتش بي5

 

--------

واي استفسار اخي الكريم انا جاهز

علاء جدوع

More Questions Like This

Do you need help in adding the right keywords to your CV? Let our CV writing experts help you.