بسم الله الرحمن الرحيم
ستتعلم من درس اليوم طريقة برمجة سكريبت يتيح لك رفع ملف من خلال نموذج html وتخزينه في حقل بقاعدة البيانات..
ويتكون السكريبت من 3 مكونات رئيسية:
1- الجدول files
2- نموذج هتمل HTML Form
3- كود PHP لتحميل الملف
أولاً: الجدول files
ويتكون الجدول من الحقول التالية:
* id ويُحفظ فيه رقم الملف.
* filename ويُحفظ فيه اسم الملف.
* filesize ويُحفظ فيه حجم الملف (بالبايت).
* filetype ويُحفظ فيه نوع الملف.
* filedata ويُحفظ فيه محتويات الملف.
وتكون بنية الجدول كالتالي: Table Structure
كود:
CREATE TABLE `files` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`filename` VARCHAR( 255 ) NOT NULL ,
`filesize` INT NOT NULL ,
`filetype` VARCHAR( 255 ) NOT NULL ,
`filedata` BLOB NOT NULL ,
PRIMARY KEY ( `id` )
);
لاحظ: أننا اخترنا النوع Blob للحقل filedata وهو النوع المناسب لتخزين الملفات
ثانياً: نموذج هتمل HTML Form:
كود HTML:
<form method="post" action="upload.php" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
<input type="text" name="filename" /><br />
<input type="file" name="filedata" /><br />
<input type="submit" name="submit" value="submit" /><br />
</form>
لاحظ:
* أننا أضفنا الكود enctype="multipart/form-data" للوسم <form> وهو لازم حتى يقوم النموذج بتحميل الملفات للسيرفر.
* لاحظ أيضاً أننا أضفنا MAX_FILE_SIZE في النموذج لتحديد حد أقصى لحجم الملفات المرفوعة وهو 1000000 بايت (حوالي 1 ميجابايت).
ثالثاً: كود PHP
كود PHP:
<?
// ضع بيانات قاعدة البيانات لديك هنا
mysql_connect("localhost", "root", "");
mysql_select_db("dbname");
// لا تقم بالتعديل أسفل هذا السطر
if($_FILES['filedata']['tmp_name'] != "")
{
$fileName = $_FILES['filedata']['name'];
$tmpName = $_FILES['filedata']['tmp_name'];
$fileSize = $_FILES['filedata']['size'];
$fileType = $_FILES['filedata']['type'];
$fo = @fopen($tmpName, "r");
$data = @fread($fo, filesize($tmpName));
$data = addslashes($data);
}
$result = @mysql_query("INSERT INTO `files` VALUES ('', '$fileName', '$fileSize', '$fileType', '$data')");
if($result)
{
echo "تم إضافة الملف بنجاح";
}
else
{
echo "خطأ أثناء اضافة الملف";
}
?>
مرفق ملف النموذج وكود php