الرئيسية
سجل الزوار
القائمة البريدية
راسلنا
خريطة الموقع
جديد الصور
جديد البطاقات
جديد الصوتيات
المتواجدون الآن
تغذيات RSS
2012-08-15 03:18
إدارة الصور بواسطة تطبيقات قواعد البياناتmysql
اسم المقال : إدارة الصور بواسطة تطبيقات قواعد البيانات Mysql
الكاتب : عماد عدلي
المستوى : متقدم
يعتبر تخزين الصور داخل جداول قواعد البيانات نوع جيد من أنواع التعامل مع الصور داخل البرامج التي تتطلب ذلك . وتتيح لنا قواعد البيانات Mysql هذا الميزة داخل حقول من نوع blob التي تسمح بتخزين البيانات من نوع Binary لم أطيل عليك الحديث .. هذا الشرح يوضح هذه الفكرة مع تطبيق عملي عبارة عن برنامج صغير وبسيط لتوضيح فكرة تخزين واستدعاء الصورة من قاعدة البيانات . يمكنك تطويره ليفي بمتطلباتك . أولا : إنشاء جدول قاعدة البيانات . أول شي يجب إنشاء الجدول الذي نقوم بتخزين بيانات الصور به وليكن باسم web_imgs يتكون من الحقول التالية: ID, pic_name, pic_type, pic_source حقل id يخزن به رقم الصورة بطريقة تسلسلية وهو الـ Primary Key حقل Pic_name سيتم تخزين اسم الصورة به وهو من نوع varchar حقل pic_type سيتم تخزين امتداد الصورة به أو ما يعرف بـ MIME وهو من نوع varchar أيضا حقل pic_source هو الذي يخزن به الصورة بشكل ثنائية بواسطة تعريف نوع البيانات على إنها blob واليك كود إنشاء الجدول.
ثانيا :مرحلة تخزين الصورة.
بالنسبة لتخزين الصور يمكنك استخدام الطريقة التي تناسبك أو التي تناسب برامجك يمكنك ذلك عن طريق فورم للتحميل أو أي طريقة أخري. باستخدام Form للإرسال مثلا سيكون الكود كالتالي .
نلاحظ اختلاف هذا النموذج عن النماذج الأخرى وذلك لوجود عبارة ‘enctype ='multipart/form-data والتي تفيد أن البيانات التي يتم إرسالها بيانات ثنائية Binary . وسيتم أرسل البيانات إلى صفحة up.php أو إكمال إجراء عمليات المعالجة داخل نفس الصفحة باستخدام PHP_SELF كما سنفعل في تنسيق الكود في نهاية البرنامج. هنا نقوم باستقبال البيانات المرسلة بواسطة فورم التحميل ومعالجتها قبل الإرسال إلى قاعدة البيانات.
بواسطة الكود السابق قمنا باستقبال بيانات الصورة من المتغير $pic_source على هيئة ملف بواسطة الدالةfopen() ثم قمنا بقراءة الملف بواسطة fread() . الدالة filesize() وضعت هنا عوض عن Length والتي تجعل الدالة fread تقرأ حتى نهاية الملف. ثم قمنا بإضافة علامات "" إلي البيانات المخزنة داخل pic_source وذلك عند استخدامنا للدالة addslashes() لتفادي الأخطاء التي قد تحدث أثناء تخزين البيانات و الآن نقوم بتخزين البيانات المطلوبة من النموذج بواسطة المتغيرات المبيتة العامة HTTP_POST_FILES للحصول منها على اسم الصورة و نوع MIME والذي سوف نستخدمه في عرض الصورة على المتصفح .
هنا نقوم بالاتصال قاعد البيانات بواسطة اسم المستخدم وكلمة المرور لقاعدة البيانات
ثم نقوم بتخزين البيانات بواسطة هذا الاستعلام مع العلم أن المتغير $pic_source يحتوى على بيانات من نوع binary والحقل pic_source من نوع blob
بعد اجراء عمليه التخزين نقوم بعرض رسالة نجاح عمليه التخزين مع عرض وصلة للمعاينة الصورة وفى هذه الحالة نستخدم رقم id الخاص بالصورة التى تم رفعها الان ليعمل بمثابه شرط لعرض الصورة داخل صفحة show_pic كما تشاهد .
ثالثا : عرض الصور من قاعدة البيانات .
يتم عرض الصورة من خلال صفحة show_pic.php وبواسطة الاتصال بقاعدة البيانات الاتصال والاستعلام عن الصف الذى يحمل رقم id للصورة ومن ثم طباعه الصورة على المتصفح . إليك الكود الخاص بصفحة show_pic.php والمسئول عن عرض الصور .
تنسق خطوات البرنامج :- لتنسيق خطوات البرنامج حتى يمكن اكتشاف الأخطاء بسهولة وذلك بإضافة جملة شرطية تقوم بعرض فورم التحميل أو معالجة الصورة وتخزينها داخل قاعدة البيانات ويتم ذلك بعد أجراء عملية الإرسال بنجاح . لكي تظهر الصفحة بهذا الشكل
صفحة show_img.php والكود المسئول عن العرض كما ذكرنا سابقا
والى هنا نكون قد انتهينا من إعداد نموذج بسيط يشرح فكرة تخزين الصور داخل قواعد البيانات . نرجو أن تكون قد استفدت من هذا الدرس الشيق.
|
|
خدمات المحتوى
|
تقييم
|
|
|
Powered by Dimofinf cms Version 3.0.0
Copyright© Dimensions Of Information Inc.