العودة   مركز بوابة العرب التعليمي > قسم البرمجة والبرمجيات > منتدى لغات الانترنت وتصميم المواقع

إضافة رد
 
أدوات الموضوع
  #21  
قديم 24-10-2009, 08:39 AM
fabolouss fabolouss غير متواجد حالياً
 
تاريخ التسجيل: Oct 2009
المشاركات: 8
افتراضي




ارجو ارفاق مثال يا ملاك
رد مع اقتباس
  #22  
قديم 25-03-2011, 04:33 AM
Tartooob Tartooob غير متواجد حالياً
 
تاريخ التسجيل: Mar 2011
المشاركات: 1
افتراضي

اقتباس:
المشاركة الأصلية كتبت بواسطة مـــلاك مشاهدة المشاركة
نستطيع تخزين الصور في قواعد البيانات بطريقتين
الاولى : نعتمد فيها على تخزين الصور ذاتها في قاعدة البيانات .
الثانية : نعتمد فيها على تخزين الصور على السيرفر و تخزين عنوانها في قاعدة البيانات.

لكل طريقة من الطريقتين مزايا و عيوب و لكني افضل الطريقة الثانية لانها تأخذ مساحة اقل
في قاعدة البيانات و تخفف عنها العبأ .
الان سوف ابدأ بتوضيح كلا من الطريقتين بالتفصيل ..

الطريقة الاولى : تخزين الصور ذاتها قي قاعدة البيانات
الدرس مشروح على قاعدة بيانات mysql و الخطوات هي ذاتها مع بقية قواعد البيانات

عند إنشاء
الجدول الذي نريد تخزين الصوره فيه لابد ان تكون الخانة المراد تخزين الصوره فيها
من نوع
bolb
هذا النوع هو الذي يستخدم مع الملفات الرقمية .

لو اردنا الان ا رفع صوره من جهاز المستخدم و من ثم تخزينها في قاعدة البيانات كيف يتم ذلك
اولا لرفع الصوره نقوم بعمل فورم كالتالي مع ملاحظة وضع
كود:
encrypt=”mulipart/form-data”
لأعلام السيرفر بوجود ملفات .

كود:
<form method="post" action="" enctype="multipart/form-data">
<input type="file" name="image_name" size="40">
<input type="hidden" name="flag" value=1>
<br>
<input type="submit" name="submit" value="تحميل">
</form>

اما الان و بعد ان يضغط المستخدم على تحميل ، يستقبل السيرفر ملف الصوره و يتم تخزينه في مجلد مؤقت
بالسيرفر ، يمكن الوصول لخصائص هذا الملف من خلال
كود PHP:
$_files[“image_name”
image_name
هو اسم الملف الذي استخدمناه في الفورم

ثانيا : نبدأ في عملية تخزين الصوره ، نحتاج الى تخزين نوع الصوره و الصوره
نفتح الاتصال مع قاعدة البيانات

كود PHP:
$connectionmysql_connect("localhost",$user_db_name,$user_db_pw);
mysql_select_db($db_name); 
نحدد نوع الملف المحمل إن كان صوره ام لا وذلك كالتالي
كود PHP:
$img_type=$_files["image_name"]["type"];  // تم تخزين نوع الصوره في المتغير
    
$type=array("image/jpeg","image/gif","image/pjpeg","image/bmp","image/x-png");
    if(! 
In_array($img_type,$type))
    die(
"الصوره يجب ان يكون امتدادها اما  gif , jpg , bmp , png <br> حتى تقبل "); 
بعد التأكد من نوع الملف انه صوره
الان نقرأ ملف الصورة المؤقت الموجود في السيرفر و الذي نستيطع الحصول على موقعه من خلال
كود PHP:
$_files[“image_name”][“tmp_name”
كود PHP:
$r=fopen($_files["image_name"]["tmp_name"],"rb") or die("فشلت عملية فتح الملف"); 
الان نجهز محتوى الملف لأدخاله في قاعدة البيانات بإضافة سلاش ، في الصوره تضاف سلاش قبل
null bit
كود PHP:
$image_name=addslashes(fread($r,filesize($_files["image_name"]["tmp_name"]))); 
استخدمنا الداله
fread
و هي داله تستخدم في قراءات الملفات الرقمية ، و يعد استخدامها آمن لانها تتجاهل نهاية السطور
\n
و هذه الدالة تقرأ حتى الطول المحدد في المرسل الثاني و لا بد ان يكون الملف بأكمله
و لهذا استخدمنا
كود PHP:
filesize($_files["image_name"]["tmp_name"]) 
ثالثا : كتابة الطلب الى قاعدة البيانات
الطلب لتخزين صوره لا يخلف ابدا عن اي طلب آخر

كود PHP:
$query="insert into image(id,img,type) values('','{$image_name}','$img_type')";
    
$result=mysql_query($query,$connection) or die (mysql_error($connection));
echo 
"تم تخزين الصورة في قاعدة البيانات"

رابعا : كيف نسترجع الصوره من قاعدة البيانات و نعرضها
يجب ان نقوم بعمل ملف خاص لعرض الصوره و ليكن ملف بإسم
display_image.php

لابد ان لا يحتوي الملف سوى كود استرجاع الصوره و عرضها و النقطه الهامه هو تحديد نوع محتوى
الصفحه و هذا يتم كالتالي
نسترجع الصورة و نوعها من قاعدة البيانات
كود PHP:
$connectionmysql_connect("localhost",$user_db_name,$user_db_pw);
mysql_select_db($db_name);
$query="select * from image where id=$img_id";
$result=mysql_query($query,$connection);
$row=mysql_fetch_array($result);
$image_type=$row["type"];
$image$row["img"]; 
ثم نحدد نوع محتوى الصفحه بالسطر التالي

كود PHP:
header("content-type:".$image_type); 
و الان طباعة الصوره
كود PHP:
print ($image); 
لإظهار الصور في الصفحات نكتب كالتالي
كود PHP:
<img src="display_image.php?img_id=$img_id"
انتهينا بذلك من الطريقة الاولى ..


الطريقة الثانيه : تخزين عناوين الصور في قاعدة البيانات
النقطة التي يجب مراعاتها عند إنشاء الجدول الذي سوف نخزن فيه عناوين الصور ان تكون الخانه من نوع
varchar
و تحديد طول بقيمة كبيره في المثال
varchar(255)
و السبب في ذلك حتى يتسع لأي عنوان ممكن ان يخزن فيه ، لو كان العنوان اطول مما تتسع الخانة في الجدول
سوف يخزن العنوان ناقصا ، و بالتالي لن نستفيد منه ..

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

كود PHP:
$img_path="$image_directory/".$_files["image_name"]["name"];

copy($_files["image_name"]["tmp_name"],$img_path) or die("فشلت عملية نسخ الملف"); 
الان نخزن العنوان في قاعدة البيانات
كود PHP:
$query="insert into image_path(id,img_path) values('','$img_path')";
$result=mysql_query($query,$connection) or die(mysql_error($connection)); 
اما لعرض الصوره فقط نسترجعها من قاعدة البيانات و تعرض مباشرة
و لكن هناك نقطة هامة يجب مراعاتها في استخدام هذه الطريقة ، في حال تم حذف الصوره من المجلد مباشرة
سوف يبقى العنوان مخزن في قاعدة البيانات و هذا قد يتسبب في مشاكل عند عرض الصفحة
و لهذا يجب التأكد من وجود الصورة في المجلد قبل عرضها و قد خلقت صورة يتم عرضها في حال لم تكن الصوره
الاصلية موجوده ..
يتم التأكد من وجود الملف بواسطة الدالة :
File_exists

كود PHP:
if(file_exists($img_path))
    echo 
"<br><img src=\"$img_path\"><br>";
    else
    echo 
"<br><img src=\"$img_not_found\"><br>"
هكذا اكون انتهيت من توضيح الطريقة الثانية ...

لقد أرفقت الامثلة الخاصة بالدرس ..

ملاحظة :
كود PHP:
$_files 
تعمل من نسخة php4.1
و يمكن استبدالها
$http_files_vars
والتي تعمل من نسخة php4

أتمنى لكم الفائدة دوما
اختكم / مـــلاك


شكرا لك على هذا الشرح المميز
وجزاك الله كل الخير

بس ممكن تحطين المرفقات لنا
رد مع اقتباس
  #23  
قديم 08-07-2012, 02:53 AM
goolde24 goolde24 غير متواجد حالياً
 
تاريخ التسجيل: Jun 2006
المشاركات: 1
افتراضي اضافة صورة مع الخبر

السلام عليكم
تم تطبيق كل ما ورد في الموضوع واشكركم على المجهود الرائع
وعندي طلب بسيط ...
كود خاص بالتعديل على الخبر والصورة..
مثلا تم كتابة خبر ورفع صورة مع الخبر وعند العرض وجد ان الصورة غير مناسبة وارغب في تغيير الصورة ...

ممكن كود خاص بالتعديل على الخبر ويكون بصفحة اسمها ( update_news.php )

مع خالص تحياتي .... وشكرا....
رد مع اقتباس
  #24  
قديم 12-03-2014, 12:02 PM
blackbrown5 blackbrown5 غير متواجد حالياً
 
تاريخ التسجيل: May 2008
المشاركات: 6
افتراضي

السلام عليكم
اريد تخزين الصورة واستعراضها بطريق dao
ارجو الرد على الخاص
رد مع اقتباس
  #25  
قديم 04-09-2015, 04:00 AM
مصطفى القطان مصطفى القطان غير متواجد حالياً
 
تاريخ التسجيل: May 2008
المشاركات: 1
افتراضي مشكلتي في رفع الصور

السلام عليكم انا اعمل على عمل مشروع عبارة عن موقع البوم صور لعدة مستخدمين بحيث يقوم كل مستخدم بعمل حساب خاص له ويقوم برفع صوره الخاصة فيه المشكلة التي واجهتني أنني ارفع الصور باسم الصورة الموجود على جهازي الكمبيوتر يحدث احيانا تشابه في الاسماء واختلاف الصور فيقوم السكربت بحذف الصورة القديمة المتشابهة بالاسم واضافة الجديدة انا اريد ان لا يحذف أي شيء فأكتشفت فكرة لكن لم استطع تنفيذها أن يكون لكل مستخدم مجلد صور خاص فيه باسم معين وليكن رقم id للمستخدم ينشأ اتوماتيك بمجرد التسجيل ثم يدخل صوره في هذا المجلد ويقوم السكربت بتغيير اسم الصورة إلى اسم جديد وليكن رقم عشوائي حتى لا تحدث تعارضات في تحميل الصور او تشابه اسماء اولا هل فكرتي صحيحة وغن كانت صحيحة هل ممكن تعلمني الطريقة وان كانت خاطئة فما الحل ؟

الذي ققامت به الاخت ملاك تم عمله بنجاح ولكن المشكلة في ان الصور تتشابه احيانا اثناء ادخالها في المجلد فتحذف الصور المتشابهة فما الحل لمنع ذلك ؟
رد مع اقتباس
إضافة رد

أدوات الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع


الساعة الآن 01:44 PM.


جميع الحقوق محفوظة لشبكة بوابة العرب
New Page 4
 
 
Copyright © 2000-2017 ArabsGate. All rights reserved
To report any abuse on this website please contact abuse@arabsgate.com