الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

طلب كود رفع الملفات

بدأه eyad72 في 26 أكتوبر 2010 · 3 رد · 888 مشاهدة · في منتدى تصميم صفحات الويب
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

إخواني أريد كود رفع الملفات إلى السيرفر مع إبقاء اسم الملف ولا حقته كما هي في الأصل

شكرا لكم

#2

السلام عليكم و رحمة الله و بركاته

الموضوع ينقسم إلى جزئين : XHTML and PHP

XHTML : و هو الجزء الخاص بالفورم الذى سيظهر للزائر او صاحب الموقع ( حسب مكان تواجده ) ليتمكن من اختيار الملف و رفعه ، و هذا فورم طبيعى يختلف فى شئين فقط :

1 - from Tag : يجب ان يأخذ Attribute يسمى enctype و يأخد القيمة multipart/form-data

2 - input Tag : يكون فيه الـ type يأخذ القيمة file

ليكون الفورم مشابه لهذا :


<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="myFile" />
<br />
<input type="submit" name="submit-upload" value="Upload" />
</form>

PHP : و هو الجزء الخاص بمعالجة رفع الملف و هذا الجزء له عدة مراحل :

1 - التأكد من ان الملف تم رفعه بنجاح و ان الملف مرفوع عن طريق HTTP POST.

2 - التأكد من نوع الملف المرفوع مثل jpg, png,zip, rar ........ . ان كان من بين الانواع المسموحة أم لا

3 - التأكد من حجم الملف ان كان يتعدى الحجم المسموح ام لا

4 - نقل الملف من الملفات المؤقتة الى الماكن الذى تود حفظ الملفات المرفوعة به و تحديد اسمه الجديد

و لتنفيذ هذه الخطوات لابد لك من معرفة الاتى :

أ - بيانات الملف المرفوع تكون موجودة بالمصفوفة $_FILES و ليس $_POST و تكون على الشكل التالى :


Array (
[name] => Original File Name
[type] => File Type
[tmp_name] => File Absolute Path On Server
[error] =>Errors
[size] => File Size In Bytes
)

نبدأ فى التنفيذ :

اولا نحدد حجم الملفات المسموح بها و نوعها و المكان الذى سنحتفظ بها فيه :


//Max File Size In Kilo Bytes
$configs['maxSize'] = 1024;
//Allowed Files Types
$configs['ext'] = array('jpeg','jpg','gif','png','bmp');
//Where To Save Uploaded Files
$configs['uploadPath'] = '/upload';
?>
<?php

ثانيا نتأكد من ان الملف تم رفعه و الملف مرفوع عن طريق HTTP POST


<?php
//Max File Size In Bytes
$configs['maxSize'] = 1024;
//Allowed Files Types
$configs['ext'] = array('jpeg','jpg','gif','png','bmp');
//Where To Save Uploaded Files
$configs['uploadPath'] = '/upload';
//Check If File Uploaded
if(isset($_FILES['myFile']) && is_uploaded_file($_FILES['myFile']['tmp_name'])){

}
?>

هنا myFile تعبر عن قيمة الـ name Attribute فى الـ XHTML Form

<input type="file" name="myFile" />

ثالثا نتأكد من ان نوع الملف المرفوع مسموح


//Max File Size In Bytes
$configs['maxSize'] = 1024;
//Allowed Files Types
$configs['ext'] = array('jpeg','jpg','gif','png','bmp');
//Where To Save Uploaded Files
$configs['uploadPath'] = '/upload';
//Check If File Uploaded
if(isset($_FILES['myFile']) && is_uploaded_file($_FILES['myFile']['tmp_name'])){
//Check File Type
if(in_array(end(explode('.',strtolower($_FILES['myFile']['name']))),$configs['ext']))
{

}
}
?>
<?php

وفى حالة لم يكن النوع مسموح به يوقف عمل السكريبت و اظهار الخطأ للزائر :


<?php
//Max File Size In Bytes
$configs['maxSize'] = 1024;
//Allowed Files Types
$configs['ext'] = array('jpeg','jpg','gif','png','bmp');
//Where To Save Uploaded Files
$configs['uploadPath'] = '/upload';
//Check If File Uploaded
if(isset($_FILES['myFile']) && is_uploaded_file($_FILES['myFile']['tmp_name'])){
//Check File Type
if(in_array(end(explode('.',strtolower($_FILES['myFile']['name']))),$configs['ext']))
{

}else {
echo '<a href="javascript:history.back();">Back</a><br />';
die('File Type Not Allowed');
}
}
?>

ثم التأكد من الحجم و فى حالة انه اكبر من المسموح يظهر الخطأ للمستخدم :


//Max File Size In Bytes
$configs['maxSize'] = 100;
//Allowed Files Types
$configs['ext'] = array('jpeg','jpg','gif','png','bmp');
//Where To Save Uploaded Files
$configs['uploadPath'] = 'upload';
//Check If File Uploaded
if(isset($_FILES['myFile']) && is_uploaded_file($_FILES['myFile']['tmp_name'])){
//Check File Type
if(in_array(end(explode('.',strtolower($_FILES['myFile']['name']))),$configs['ext']))
{
if(($_FILES['myFile']['size']/1024) <= $configs['maxSize'])
{

}else {
echo '<a href="javascript:history.back();">Back</a><br />';
die("File Is Larger Than Allowed Size");
}
}else {
echo '<a href="javascript:history.back();">Back</a><br />';
die('File Type Not Allowed');
}
}
?>
<?php

فى النهاية اذا كان نوعه مسموح به و الحجم ايضا يتم نقله الى المكن المخصص للاحتفاظ به ليكون فى النهاية :


<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="myFile" />
<br />
<input type="submit" name="submit-upload" value="Upload" />
</form>
<?php
//Max File Size In Bytes
$configs['maxSize'] = 100;
//Allowed Files Types
$configs['ext'] = array('jpeg','jpg','gif','png','bmp');
//Where To Save Uploaded Files
$configs['uploadPath'] = 'upload';
//Check If File Uploaded
if(isset($_FILES['myFile']) && is_uploaded_file($_FILES['myFile']['tmp_name'])){
//Check File Type
if(in_array(end(explode('.',strtolower($_FILES['myFile']['name']))),$configs['ext']))
{
if(($_FILES['myFile']['size']/1024) <= $configs['maxSize'])
{
move_uploaded_file($_FILES['myFile']['tmp_name'],realpath($configs['uploadPath']).'/'.$_FILES['myFile']['name']);
echo 'File : '.$_FILES['myFile']['name'].' Uploaded .';
}else {
echo '<a href="javascript:history.back();">Back</a><br />';
die("File Is Larger Than Allowed Size");
}
}else {
echo '<a href="javascript:history.back();">Back</a><br />';
die('File Type Not Allowed');
}
}
?>

ما هذا الا مثال يمكن تغيره كما تريده ، ان كانت هناك اى جزئية غير واضحة ، اخبرنا بما هو غير موضح

تم تعديل هذه المشاركة بواسطة SamDev في 29 أكتوبر 2010 في 13:22

I don't care how you code , i have my own style and i like it

#3
eyad72 كتب:

إخواني أريد كود رفع الملفات إلى السيرفر مع إبقاء اسم الملف ولا حقته كما هي في الأصل

شكرا لكم

لم نجاوب على هذا السؤال لأنه كان يجب عليك وضع هذا السؤال في إحدى أقسام البرمجة يا صديقي, فهذا القسم يتخصص في صنع شكل الموقع فقط كقالب يتمكن من خلاله المبرمج برمجة الموقع

تم تعديل هذه المشاركة بواسطة cornerofart في 29 أكتوبر 2010 في 13:40

welcome to my portfolio:

www.cornerofart.net

Submit you design

here
#4

السلام عليكم

بارك الله بيك على هذا الشرح الممتع وانا بالصدفه عثرت على شرحك الرائع لكن عندي سوال اذا ممكن انا عاوز احزن الملف وليكن صورة مثالا في قاعد البيانات mysql يتم استدعاء بلغه php ومن ثم يتم تخزن الصورة او الملف بالقاعده

واشكرك مرة ثانيه

انتظر الجواب

altae13@yahoo.com

مواضيع مشابهة