السلام عليكم
في الاسفل مثال بسيط يوضح كيفية رفع اكثر من ملف الى قاعدة بيانات من نوع mysql
تفاصيل الجدول المستخدم
كود:
CREATE TABLE IF NOT EXISTS `file` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL DEFAULT 'Untitled.txt',
`mime` varchar(50) NOT NULL DEFAULT 'text/plain',
`size` bigint(20) unsigned NOT NULL DEFAULT '0',
`data` mediumblob NOT NULL,
`created` datetime NOT NULL,
PRIMARY KEY (`id`)
);
فورم رفع الملفات
كود PHP:
<?php
$file_no = 4;
?>
<form action="upload.php?do=upload" method="post"
enctype="multipart/form-data">
<?php
for($i = 1; $i <= $file_no; $i ++) {
?>
<input name="fileup[]" type="file" /></br />
<?php
}
?>
<input name="submit" type="submit" value="رفع الملفات" /></form>
السكربت الذي سوف يقوم بحفظ الملفات في قاعدة البيانات
كود PHP:
<?php
// قم بالاتصال بقاعدة البيانات
$myDb = mysql_connect ( 'localhost', 'root', '' );
@mysql_select_db ( 'project', $myDb );
// يجب علينا ان نعرف عدد الملفات التي نريد pt/ih
$files_count = count ( $_FILES ['fileup'] ['name'] );
$processed_file = 0;
// قم بحفظ الملفات واحد تلو الاخر
while ( $processed_file < $files_count ) {
// اذا كان لايوجد لدينا اسم للملف المراد تحميله فسوف نقوم بفحص الملف الذي يليه
if (empty ( $_FILES ['fileup'] ['name'] [$processed_file] )) {
$processed_file ++;
continue;
}
// قم بجمع المعلومات الضرورية حتى نقوم بتخزينها في قاعدة باليانات
$name = mysql_real_escape_string ( $_FILES ['fileup'] ['name'] [$processed_file] );
$mime = mysql_real_escape_string ( $_FILES ['fileup'] ['type'] [$processed_file] );
$data = mysql_real_escape_string ( file_get_contents ( $_FILES ['fileup'] ['tmp_name'] [$processed_file] ) );
$size = intval ( $_FILES ['fileup'] ['size'] [$processed_file] );
// قم بتنفيذ امر الحفظ
$query = "INSERT INTO `file`(`name`, `mime`, `size`, `data`, `created`)
VALUES ( '{$name}', '{$mime}', {$size}, '{$data}', NOW() )";
$result = mysql_query ( $query );
// قم بمعاينة النتيجة
if ($result) {
echo $_FILES ['fileup'] ['name'] [$processed_file] . ' تم حفظه بنجاح';
} else {
echo 'لم يتم حفظ
الملف<pre>' . $_FILES ['fileup'] ['name'] [$processed_file] . '<br/>' . mysql_error () . '</pre>';
}
$processed_file ++;
}
?>
احب ان اذكر انه لا يجب استخدام هذا الكود في موقعك لانه ببساطه مثال توضيحي
ارجو ان يكون المثال سهل الفهم