الملاحظات
ركن لغات البرمجه
:: لغات البرمجه php و asp و Ajax و Java و غيرها

درس رفع الملفات وتخزينها فى قاعدة البيانات

Like Tree5معجبون
  • 4 أضيفت بواسطة Arab Coders Project
  • 1 أضيفت بواسطة Arab Coders Project

موضوع مغلق
رقم المشاركة # 1  
أضيفت بتاريخ 29 - 07 - 2009 عند الساعة 17:57
صورة 'Arab Coders Project' الرمزية
Arab Coders Project
مطور الويب
Arab Coders Project غير متواجد حاليآ بالمنتدى
بيانات موقعي
اصدار المنتدى: منتج اخر
تاريخ الإنضمام: 22 - 03 - 2007
رقم العضوية : 33367
الدولة : EGYPT
المشاركات: 4,561
قوة السمعة : 2120
Iconrote

  درس رفع الملفات وتخزينها فى قاعدة البيانات




بسم الله الرحمن الرحيم

هذ درس عن كيفية حفظ الملفات فى قاعدة البيانات من صور وملفات مختلفة doc-pdf>>>>الخ

أولا: نقوم بعمل قاعدة بيانات ونسوى جدول بالحقول الاتية

1. id : الترميز الرقمى لكل ملف
2. name : اسم الملف
3. type :نوع محتوى الملف
4. size :حجم الملف
5. content : الملف نفسه

بالنسبة لحقل الcontent لابد ان يكون من النوع blob لان هذا هو النوع المناسب لتخزين الملفات

درس رفع الملفات وتخزينها فى قاعدة البيانات




رمز PHP:
CREATE TABLE upload (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(30NOT NULL,
type VARCHAR(30NOT NULL,
size INT NOT NULL,
content MEDIUMBLOB NOT NULL,
PRIMARY KEY(id)
); 


رفع الملفات وتخزينها فى قاعدة البيانات تتطلب خطوتين

1-رفع الملفات على السيرفر
2-ارسالها وتخزينها فى قاعدة البيانات


لرفع الملفات محتاجين فورم لرفع الملفات


نسوى ملف رفع الملفات وليكن upload.php

رمز PHP:
<form action="process.php" method="post" enctype="multipart/form-data">
<
table width="350" border="0" cellpadding="1" cellspacing="1" class="box">
<
tr>
<
td width="246">
<
input type="hidden" name="MAX_FILE_SIZE" value="2000000">
<
input name="userfile" type="file" id="userfile">
</
td>
<
td width="80"><input name="upload" type="submit" class="box" id="upload" value=" Upload "></td>
</
tr>
</
table>
</
form

ملاحظات:

لاحظ اننا كتبنا enctype="multipart/form-data" وهى مهمه لرفع الملفات

وحددنا حجم الملف المراد رفعه كحد اقصى MAX_FILE_SIZE للملف الواحد 2000000


بعد ما نرفع الملف على السيرفر محتاجين نقرأه حتى نعطيه امر لتخزينه فى قاعدة البيانات

اولا:

نشير للتالى مثل ما انت شايف فى الفورم فوق

اسم المدخل input هو userfile

وراح نسوى


رمز Code:
$_FILES['userfile']['name']
اسم الملف الاصلى على السيرفر

رمز Code:
$_FILES['userfile']['type']
نوعه وليكن مثلا لو الملف اللى رفعناه صوره راح يكون نوعه image/gif


رمز Code:
$_FILES['userfile']['size']
حجم الملف بالبايت

رمز Code:
$_FILES['userfile']['tmp_name']
اسم الملف المؤقت على السيرفر قبل تخزينه فى قاعدة البيانات

رمز Code:
$_FILES['userfile']['error']
رسالة خطأ


ونسوى ملفنا ونسميه process.php



رمز PHP:
<?php
if(isset($_POST['upload']) && $_FILES['userfile']['size'] > 0)
{
$fileName $_FILES['userfile']['name'];
$tmpName  $_FILES['userfile']['tmp_name'];
$fileSize $_FILES['userfile']['size'];
$fileType $_FILES['userfile']['type'];

$fp      fopen($tmpName'r');
$content fread($fpfilesize($tmpName));
$content addslashes($content);
fclose($fp);

if(!
get_magic_quotes_gpc())
{
    
$fileName addslashes($fileName);
}

include 
'library/config.php';
include 
'library/opendb.php';

$query "INSERT INTO upload (name, size, type, content ) ".
"VALUES ('$fileName', '$fileSize', '$fileType', '$content')";

mysql_query($query) or die('Error, query failed');
include 
'library/closedb.php';

echo 
"<br>File $fileName uploaded<br>";
}
?>

شرح الكود:


اولا: قرأنا الملف من السيرفر بكافة بياناته
ثانيا: فتحنا الملف وقرأنا محتوياته تمهيدا لادراجه فى القاعدة
ثالثا: اضفنا دالة addslashes لتجنب اى اخطاء فى اضافة الملف وتخزينه فى القاعدة خصوصا اذا كان به الرموز ' او "

رابعا: عملنا انكلود لملفات الاتصال بالقاعدة

خامسا: ثم استخدمنا امر الادخال insert لتخزين البيانات فى القادعدة وراسلنا الاستعلام query


بهيك انتهى الدرس

تحياتى


#########
# محمد أمين #
#########
مــبـــرمج PHP


برمجياتى: اسكربت AraDownPro | مشروع مطورى الويب العربى
مشروع البحث عن مبرمج او مطور

مشروع مطورى الويب العربى لتعليم برمجة وتصميم المواقع
www.advphp.com
أضيفت بتاريخ 29 - 07 - 2009 عند الساعة : 18:10
رقم المشاركة # 2
||| عضو التميز |||
صورة 'omardealo' الرمزية
تاريخ الإنضمام: 24 - 10 - 2006
رقم العضوية : 27111
الدولة : مصر
المشاركات: 11,744
قوة السمعة : 3029
افتراضي
الله يجزيك خير
بس حتى يكون الدرس مكتمل
يرجى وضع كود تحميل واستعراض الملف المرفق
  • omardealo غير متواجد حاليآ بالمنتدى
أضيفت بتاريخ 29 - 07 - 2009 عند الساعة : 18:22
رقم المشاركة # 3
Banned
تاريخ الإنضمام: 31 - 12 - 2008
رقم العضوية : 63700
الدولة : الجزائر
المشاركات: 1,060
قوة السمعة : 337
افتراضي
جزاك الله خير
لكن لم تحدد اين ترفع الملفات ؟
  • Sniper-Y غير متواجد حاليآ بالمنتدى
أضيفت بتاريخ 29 - 07 - 2009 عند الساعة : 18:44
رقم المشاركة # 4
مطور الويب
صورة 'Arab Coders Project' الرمزية
تاريخ الإنضمام: 22 - 03 - 2007
رقم العضوية : 33367
الدولة : EGYPT
المشاركات: 4,561
قوة السمعة : 2120
افتراضي
الله يجزيك خير
بس حتى يكون الدرس مكتمل
يرجى وضع كود تحميل واستعراض الملف المرفق
الفورم واضعه ياعمر

تختار الملف المراد رفعه وهيترفع

وانا عدلت الملف عشان للى يحب يجربه




وده بعد تخزينه




لانى عامله من اسكربت

فده الكود معدل فقط تغير بيانات الاتصال وخلاص

رمز PHP:
<?php
$localhost
="localhost";
$user="root";
$pass="root";
$db="table";
$table="tut";

mysql_connect($localhost,$user,$pass,$db);
mysql_select_db($db);


if(isset(
$_POST['upload']) && $_FILES['userfile']['size'] > 0)
{
$fileName $_FILES['userfile']['name'];
$tmpName  $_FILES['userfile']['tmp_name'];
$fileSize $_FILES['userfile']['size'];
$fileType $_FILES['userfile']['type'];

$fp      fopen($tmpName'r');
$content fread($fpfilesize($tmpName));
$content addslashes($content);
fclose($fp);

if(!
get_magic_quotes_gpc())
{
    
$fileName addslashes($fileName);
}



$query "INSERT INTO tut (name, size, type, content ) ".
"VALUES ('$fileName', '$fileSize', '$fileType', '$content')";

mysql_query($query) or die('Error, query failed');
;

echo 
"<br>File $fileName uploaded<br>";
}
?>
الملفات المرفقة
نوع الملف : txt process.txt (842 بايت, عدد مرات المشاهدة 122 مرة)

#########
# محمد أمين #
#########
مــبـــرمج PHP


برمجياتى: اسكربت AraDownPro | مشروع مطورى الويب العربى
مشروع البحث عن مبرمج او مطور

مشروع مطورى الويب العربى لتعليم برمجة وتصميم المواقع
www.advphp.com
  • Arab Coders Project غير متواجد حاليآ بالمنتدى
أضيفت بتاريخ 29 - 07 - 2009 عند الساعة : 18:45
رقم المشاركة # 5
مطور الويب
صورة 'Arab Coders Project' الرمزية
تاريخ الإنضمام: 22 - 03 - 2007
رقم العضوية : 33367
الدولة : EGYPT
المشاركات: 4,561
قوة السمعة : 2120
افتراضي
جزاك الله خير
لكن لم تحدد اين ترفع الملفات ؟
نحن ياغالى بدنا نخزن الملف فى قاعدة البيانات وليس السيرفر

فبنسوى ملف مؤقت ليخزن الملف $tmp_name ثم ندرجه ونخزنه فى القاعدة

#########
# محمد أمين #
#########
مــبـــرمج PHP


برمجياتى: اسكربت AraDownPro | مشروع مطورى الويب العربى
مشروع البحث عن مبرمج او مطور

مشروع مطورى الويب العربى لتعليم برمجة وتصميم المواقع
www.advphp.com
  • Arab Coders Project غير متواجد حاليآ بالمنتدى
أضيفت بتاريخ 29 - 07 - 2009 عند الساعة : 19:04
رقم المشاركة # 6
||| عضو التميز |||
صورة 'omardealo' الرمزية
تاريخ الإنضمام: 24 - 10 - 2006
رقم العضوية : 27111
الدولة : مصر
المشاركات: 11,744
قوة السمعة : 3029
افتراضي
الفورم واضعه ياعمر

تختار الملف المراد رفعه وهيترفع

وانا عدلت الملف عشان للى يحب يجربه




وده بعد تخزينه




لانى عامله من اسكربت

فده الكود معدل فقط تغير بيانات الاتصال وخلاص

رمز PHP:
<?php
$localhost
="localhost";
$user="root";
$pass="root";
$db="table";
$table="tut";

mysql_connect($localhost,$user,$pass,$db);
mysql_select_db($db);


if(isset(
$_POST['upload']) && $_FILES['userfile']['size'] > 0)
{
$fileName $_FILES['userfile']['name'];
$tmpName  $_FILES['userfile']['tmp_name'];
$fileSize $_FILES['userfile']['size'];
$fileType $_FILES['userfile']['type'];

$fp      fopen($tmpName'r');
$content fread($fpfilesize($tmpName));
$content addslashes($content);
fclose($fp);

if(!
get_magic_quotes_gpc())
{
    
$fileName addslashes($fileName);
}



$query "INSERT INTO tut (name, size, type, content ) ".
"VALUES ('$fileName', '$fileSize', '$fileType', '$content')";

mysql_query($query) or die('Error, query failed');
;

echo 
"<br>File $fileName uploaded<br>";
}
?>
اخى الكريم هذا ملف الرفع والفورم ايضا للرفع وهذا مفهوم
لكن انا اتكلم عن الاستعراض (الاستعلام من القاعدة)
بعد رفع الملف ؟ كيف اجعله متاح للتحميل ؟ او كيف استعرضه من قاعدة البيانات ؟
ان شاء الله تكون كدا وضحت
  • omardealo غير متواجد حاليآ بالمنتدى
أضيفت بتاريخ 29 - 07 - 2009 عند الساعة : 19:26
رقم المشاركة # 7
مطور الويب
صورة 'Arab Coders Project' الرمزية
تاريخ الإنضمام: 22 - 03 - 2007
رقم العضوية : 33367
الدولة : EGYPT
المشاركات: 4,561
قوة السمعة : 2120
Iconrote
اخى الكريم هذا ملف الرفع والفورم ايضا للرفع وهذا مفهوم
لكن انا اتكلم عن الاستعراض (الاستعلام من القاعدة)
بعد رفع الملف ؟ كيف اجعله متاح للتحميل ؟ او كيف استعرضه من قاعدة البيانات ؟
ان شاء الله تكون كدا وضحت
اها

ده الخاص بتحميل الملف مره اخرى من القاعدة

حطه فى ملف الprocess

رمز PHP:
<html>
<head>
<title>Download File From MySQL</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<html>
<head>
<title>Download File From MySQL</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php




$query 
"SELECT id, name FROM tut";
$result mysql_query($query) or die('Error, query failed');
if(
mysql_num_rows($result) == 0)
{
echo 
"db is null <br>";
}
else
{
while(list(
$id$name) = mysql_fetch_array($result))
{
?>

<a href="download.php?id=<?php=$id;?>"><?php=$name;?></a> 

<br>

<?php
mysql_close
();
?>

</body>
</html>

#########
# محمد أمين #
#########
مــبـــرمج PHP


برمجياتى: اسكربت AraDownPro | مشروع مطورى الويب العربى
مشروع البحث عن مبرمج او مطور

مشروع مطورى الويب العربى لتعليم برمجة وتصميم المواقع
www.advphp.com
  • Arab Coders Project غير متواجد حاليآ بالمنتدى
أضيفت بتاريخ 29 - 07 - 2009 عند الساعة : 19:37
رقم المشاركة # 8
:: عضو نشيط ::
صورة 'kasmi2004' الرمزية
تاريخ الإنضمام: 16 - 02 - 2006
رقم العضوية : 20180
الدولة : أبو الدنيا أو جدها
المشاركات: 1,920
قوة السمعة : 1172
أرسل رسالة بواسطة MSN إلى kasmi2004 أرسل رسالة بواسطة Yahoo إلى kasmi2004 أرسل رسالة بواسطة Skype™ إلى kasmi2004
افتراضي
السلام عليكم و رحمة الله و بركاته
اما بعد

درس جميل من اخ اجمل - و لاكن :

رمز PHP:

$content 
addslashes($content); 

if(!
get_magic_quotes_gpc()) 

    
$fileName addslashes($fileName); 

الا تعتقد بان هذه السطور لا فائدة منها ؟
تقول للحماية - حماية ماذا ؟
محتوى الملف راح يتم تخزينه على شكل داتا مجزئة - و لا يمكن تنفيذ محتواه او عرضه على المتصفح الا بدالة header
مثال :
رمز PHP:
@header('Content-Disposition: filename=123.gif'); 
يعني فرضنا على المتصفح امتداد الملف
فاين هي الخطورة ؟
لله درك يا ترايد 2006 - 2008
و الوداع يا من اخذت جزء من عمري
رحل خلال : 2009/08/31
  • kasmi2004 غير متواجد حاليآ بالمنتدى
أضيفت بتاريخ 29 - 07 - 2009 عند الساعة : 19:53
رقم المشاركة # 9
مطور الويب
صورة 'Arab Coders Project' الرمزية
تاريخ الإنضمام: 22 - 03 - 2007
رقم العضوية : 33367
الدولة : EGYPT
المشاركات: 4,561
قوة السمعة : 2120
افتراضي
السلام عليكم و رحمة الله و بركاته
اما بعد

درس جميل من اخ اجمل - و لاكن :

رمز PHP:

$content 
addslashes($content); 

if(!
get_magic_quotes_gpc()) 

    
$fileName addslashes($fileName); 

الا تعتقد بان هذه السطور لا فائدة منها ؟
تقول للحماية - حماية ماذا ؟
محتوى الملف راح يتم تخزينه على شكل داتا مجزئة - و لا يمكن تنفيذ محتواه او عرضه على المتصفح الا بدالة header
مثال :
رمز PHP:
@header('Content-Disposition: filename=123.gif'); 
يعني فرضنا على المتصفح امتداد الملف
فاين هي الخطورة ؟
وعليكم السلام ورحمة الله وبركاته

تعجبنى مشاركاتك اخى قاسمى خصوصا لو بتشارك بخبرتك فيها

القصة انا قرأتها عن هذه الدالة http://www.w3schools.com/php/func_string_addslashes.asp



ولو فرضا اننا سمينا الملف save'.txt واردنا رفعه

قد يفشل الملف فى رفعه

لكن انا جربته الحين واترفع

بس من غير اسم

omardealo معجب بهذا.

#########
# محمد أمين #
#########
مــبـــرمج PHP


برمجياتى: اسكربت AraDownPro | مشروع مطورى الويب العربى
مشروع البحث عن مبرمج او مطور

مشروع مطورى الويب العربى لتعليم برمجة وتصميم المواقع
www.advphp.com
  • Arab Coders Project غير متواجد حاليآ بالمنتدى
أضيفت بتاريخ 29 - 07 - 2009 عند الساعة : 20:04
رقم المشاركة # 10
:: عضو نشيط ::
صورة 'kasmi2004' الرمزية
تاريخ الإنضمام: 16 - 02 - 2006
رقم العضوية : 20180
الدولة : أبو الدنيا أو جدها
المشاركات: 1,920
قوة السمعة : 1172
أرسل رسالة بواسطة MSN إلى kasmi2004 أرسل رسالة بواسطة Yahoo إلى kasmi2004 أرسل رسالة بواسطة Skype™ إلى kasmi2004
افتراضي
وعليكم السلام ورحمة الله وبركاته

تعجبنى مشاركاتك اخى قاسمى خصوصا لو بتشارك بخبرتك فيها

القصة انا قرأتها عن هذه الدالة http://www.w3schools.com/php/func_string_addslashes.asp



ولو فرضا اننا سمينا الملف save'.txt واردنا رفعه

قد يفشل الملف فى رفعه

لكن انا جربته الحين واترفع

بس من غير اسم

لماذا اصلا تحفظ مسمى الملف بامتداده ؟ الافضل جزءه لكي تتحكم فيه بكل سلاسة
لله درك يا ترايد 2006 - 2008
و الوداع يا من اخذت جزء من عمري
رحل خلال : 2009/08/31
  • kasmi2004 غير متواجد حاليآ بالمنتدى
أضيفت بتاريخ 29 - 07 - 2009 عند الساعة : 21:17
رقم المشاركة # 11
||| عضو التميز |||
صورة 'omardealo' الرمزية
تاريخ الإنضمام: 24 - 10 - 2006
رقم العضوية : 27111
الدولة : مصر
المشاركات: 11,744
قوة السمعة : 3029
افتراضي
vista-design
الان الدرس اكتمل وتستحق التقييم
  • omardealo غير متواجد حاليآ بالمنتدى
أضيفت بتاريخ 29 - 07 - 2009 عند الساعة : 21:21
رقم المشاركة # 12
:: عضو نشيط ::
تاريخ الإنضمام: 05 - 12 - 2008
رقم العضوية : 63273
المشاركات: 427
قوة السمعة : 67
افتراضي
شكرااا لك
  • احمد يوسف غير متواجد حاليآ بالمنتدى
أضيفت بتاريخ 05 - 08 - 2009 عند الساعة : 18:32
رقم المشاركة # 13
:: عضو نشيط ::
صورة 'ننوس' الرمزية
تاريخ الإنضمام: 15 - 12 - 2005
رقم العضوية : 14140
المشاركات: 225
قوة السمعة : 450
افتراضي
اخى الكريم مشكور على الدرس

لكن فى جزء ناقص بالنسبة لى

اريد ان يتم ادراج رابط الملف بعد رفعه

مثال :

تم تحميل الملف بنجاح .. وهذا الرابط

www.sitename.com/upload/file.jpg

وعند الضغط عليه يتم استعراض الملف


وشكرا لك
قال رسول الله صلى الله عليه و سلم
" مَنْ أَكْثَرَ الِاسْتِغْفَارَ جَعَلَ اللَّهُ لَهُ مِنْ كُلِّ هَمٍّ فَرَجاً ، وَ مِنْ كُلِّ ضِيقٍ مَخْرَجاً ، وَ رَزَقَهُ مِنْ حَيْثُ لَا يَحْتَسِبُ "
صدق رسول الله صلى الله عليه و سلم
  • ننوس غير متواجد حاليآ بالمنتدى
أضيفت بتاريخ 28 - 06 - 2014 عند الساعة : 19:10
رقم المشاركة # 14
:: تطوير المنتديات ::
صورة 'إبراهيم سالم' الرمزية
تاريخ الإنضمام: 12 - 01 - 2006
رقم العضوية : 16145
الدولة : http://forum.sa3eka.com/
العمر: 28
المشاركات: 5,184
قوة السمعة : 504
افتراضي  رد : درس رفع الملفات وتخزينها فى قاعدة البيانات
استاذي الكريم
اتمنى منك وضع شرح لنا كيف ابي اعرض الملفات للزائر بالموقع
حيث ملفاتي عبارة عن صور
الـصـاعـقـة سابقا


qJJI Jgω∫ ɔρζρ qJJI ƔĮ qJĮ Ɣ
  • إبراهيم سالم متواجد حاليآ بالمنتدى
أضيفت بتاريخ 01 - 07 - 2014 عند الساعة : 03:01
رقم المشاركة # 15
:: مشرف ::
:: مشاكل لغات البرمجة ::
صورة 'Ahm3d Moham3d' الرمزية
تاريخ الإنضمام: 02 - 03 - 2011
رقم العضوية : 93553
الدولة : حماك الله يا مــصــر
العمر: 23
المشاركات: 3,661
قوة السمعة : 297
أرسل رسالة بواسطة Skype™ إلى Ahm3d Moham3d
افتراضي  رد : درس رفع الملفات وتخزينها فى قاعدة البيانات
الموضوع قديم الله يبارك فيك

تقدر تضع استفسارك أو مشكلتك في ركن

ركن مشاكل وحلول واستفسارات لغات البرمجه

يغلق

اللهم عليك بالظالمين
اللهم عليك بالظالمين
اللهم عليك بالظالمين

سكايبي : Ahm3dTraidnt
  • Ahm3d Moham3d متواجد حاليآ بالمنتدى
موضوع مغلق

العلامات المرجعية

درس رفع الملفات وتخزينها فى قاعدة البيانات


« برمجة سكريبت اتصال بينا عن طريق php شرح دالة implode وكيفية التعامل معها »

أدوات الموضوع
طرق العرض

غلق/فتح (الكل) ضوابط المشاركة
لا يمكنك اضافة مواضيع جديدة
لا يمكنك اضافة مشاركات
لا يمكنك اضافة مرفقات
لا يمكنك تعديل مشاركاتك

رمز [IMG] : متاحة
رمز HTML : معطّلة
المراجع : معطّلة
Refbacks are متاحة



الساعة معتمدة بتوقيت جرينتش +3 . الساعة الآن : 00:43.
المعهد غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي معهد ترايدنت ولا نتحمل أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)


Powered by vBulletin® Version 3.8.7 .Copyright ©2000 - 2014, Jelsoft Enterprises Ltd
SEO by vBSEO ©2011, Crawlability, Inc.
Google
‪Google+‬‏