الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤالين عن تخزين الصور في قاعدة البيانات

مغلق
بدأه قمـ14ـر في 19 مايو 2007 · 13 رد · 3,051 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

عندي سؤالين واتمنى اني القى الجواب لاني كل مااكتب سؤال في المنتدى ماحدا يرد عليا

:(:(:(

1- كيف اقدر اخزن مسار صورة في قاعدة البيانات mysql ... يعني انا عندي بطاقات (صور) اريد تخزين مسارها + مسار صور لها مصغرة

في قاعدة البيانات بحيث لما يضغط اليوزر على الصورة المصغرة تتفح له صفحة فيها البطاقة بالحجم الاصلي

وكيف احملها الصور؟؟

2- لو عندي مربع للكتابة (مثل مربع كتابة الموضوع في المنتديات) وعندي مربع الابتسامات

سؤالي كيف لما اليوزر يضغط على اي ابتسامة تروح في مربع الكتابة؟؟

وشكرا لكم

اختكم:قمـ14ـر

لا إلــــــــــــــه إلا انت سبحانك إني كنت من الظالمين

استغفر الله إلذي لا إله إلا هو واتوب إلـيه

#2

بالنسبة للسؤال الثاني فهو يتم عن طريق JavaScript وتستطيع أن تسأل عن ذلك في القسم الخاص به

أما سؤالك الأول فسأجيب باختصار، كل صورة يتم رفعها للسيرفر تحوي معلومات وصف لها، تستطيع الحصول لها عن طريق البي اتش بي بالطريقة التالية:

$_FILES['اسم الحقل اللذي رفعت منه الصورة']['temp_name']; // هذا هو الاسم المؤقت للملف بعد أن يتم رفعها للسيرفر
$_FILES['اسم الحقل اللذي رفعت منه الصورة']['name']; // الاسم الحقيقي للملف
$_FILES['اسم الحقل اللذي رفعت منه الصورة']['size']; //حجم الملف
$_FILES['اسم الحقل اللذي رفعت منه الصورة']['type']; // نوع الملف

عندما تريد رفع الصورة لمكان محدد على السيرفر فيجب عليك تحديد مسار، أي أين تريد وضع الصورة، المسار لا يكون أبدا عنوان الموقع، بل الدليل والمجلد اللذي تريد رفع الصورة إليه، مثال:

$picture_path = "./images/smiles/";

لن أدخل في تفاصيل أخرى، سوف أضع لك مثال وسنحتاج في المثال الاسم المؤقت للملف والاسم الحقيقي:

من الأفضل أن تضع شرط قبل تنفيذ الكود تتأكد أن الصورة بالفعل تم رفعها، مثال:

if(is_uploaded_file($_FILES['اسم الحقل اللذي رفعت منه الصورة']['temp_name'])) {
 copy($picture_path, $_FILES['اسم الحقل اللذي رفعت منه الصورة']['name']); // هنا ننسخ الصورة داخل المجدل
 $real_path = $picture_path, $_FILES['اسم الحقل اللذي رفعت منه الصورة']['name']; // الآن نحدد المسار الكامل للصورة
 $inset_to_db = "INSERT INTO pictures (picture_path) VALES ('$real_path')";  //  ثم نخزن المسار في قاعدة البيانات
} else {
 echo "لم يتم رفع الصورة";
}

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

أتمنى لك التوفيق

sign3.jpg
#3

أشكرك أخ عبد الله على هذا الجهد

جزاك الله خيراً

لكن هنا أنت خزنت الصورة في مجلد ما في الموقع وخزنت عنوانها في قاعدة البيانات

هل من الممكن تخزين الصورة كـ DATA في قاعدة البيانات أي بدون تخزينها في الموقع

وهل لهذه الطريقة مساوئ

أرجوا الافادة ولكم جزيل الشكر

أول منتدى عربي متكامل من برمجة سورية

منتدى جامعة دمشق

www.jamaa.cc

logo.png

ابداع بلا حدود

ShababSy.com

#4

ومعليش لو سؤال تاني

كيف بنقدر نعرف ابعاد الصورة عند الاستعراض

هل نستطيع ذلك بدون أن نقوم بتخزين الأبعاد في قاعدة البيانات

أول منتدى عربي متكامل من برمجة سورية

منتدى جامعة دمشق

www.jamaa.cc

logo.png

ابداع بلا حدود

ShababSy.com

#5

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

السؤال الثاني يتم عن طريق أوامر مكتبة GD للتعامل مع الصور والأمر getimagesize سيعطيك المعلومات التي تحتاجها

ملاحظة، يجب أن تكون مكتبة GD مفعلة في ملف php.ini وموجودة في مجلد extensions وغالبا تكون باسم php_gd2.dll

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

بالتوفيق

sign3.jpg
#6

أشكر لك التعقيب وحسن الرد

وبالتوفيق ان شاء الله

أول منتدى عربي متكامل من برمجة سورية

منتدى جامعة دمشق

www.jamaa.cc

logo.png

ابداع بلا حدود

ShababSy.com

#7

السلام عليكم و رحمة الله و بركاته ... اهلا باهل المنتدى و بمشرفينها بعد غيبة طويله عنكم ....

ياياختي قمر 14

انا ممكن اعطيكي الكود اللي ممكن تخزني فيه اي صورة

<?php
$db = new PDO('mysql:host=SAMPLEHOST;dbname=SAMPLEDB;', $username, $password);
$stmt = $db->prepare("insert into images (id, contenttype, imagedata) values (?, ?, ?)");
$id = 1;

// فلنفرض اننا نستخدم ملفات محملة للخادم 

$fp = fopen($_FILES['file1']['tmp_name'], 'rb');

$stmt->bindParam(1, $id);
$stmt->bindParam(2, $_FILES['file']['type']);
$stmt->bindParam(3, $fp, PDO::PARAM_LOB);

$db->beginTransaction();
$stmt->execute();
$db->commit();
?>
#8

السلام عليكم ورحمة الله وبركاته

اول شي اعتذر عن عدم ردي لكني كنت مسافرة

:):)

الاخ عبد الله عياش

اول شي مشكور على ردك الله يجزاك كل خير يارب

عندي سؤال...انا بصراحه مو مررة فاهمة الطريقة:(.اذا ممكن تشرحلي اكثر

الحقل اللي رفعت منه الصورة كيف يعني؟؟؟هذا من الجدول اللي في قاعدة البيانات؟؟

وبعد مااحمل مسار الصورة داخل قاعدة البيانات كيف اقدر استعرضها؟؟؟

معليش اخوي رح اتعبك معاي بس اذا ممكن ابغى مثال تشرحلي فيه اكثر ومثال للجداول اللي في قاعدة البيانات

(اذا تقدر تسميها بأسماء مثلا افضل حتى افهمها اكثر:))

والف شكر لك

---

hasanayoub

هلا اخوي...واهلا بعودتك

اخوي سامحني بس والله مافهمت مظبوط:(

اذا تقدر ترد على طلبي بشرح وافي اكون لك شاكرة

والف شكر للجميع يعطيكم العافيه

لا إلــــــــــــــه إلا انت سبحانك إني كنت من الظالمين

استغفر الله إلذي لا إله إلا هو واتوب إلـيه

#9

سؤال:

هل لديك خبرة في التعامل مع PHP أو HTML أو MySQL?

إذا كان الجواب هو لأ، فنصيحتي أن يكون البدء في تعلم الأساسيات وخاصة النماذج وطرق معالجتها عن طريق php

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

بالتوفيق

sign3.jpg
#10

جواب:

نعم عندي خبرة بالـphp & html

بس هذا مو معناه اني لازم اكون فاهمة كل شي

ولا ماكان احتجت اني اسأل........

انا مااتعاملت بالفايلز عشان كذا كنت بسأل عن الحقل اللي يتحمل منه الصور

عالعموم مشكور اخوي على رك وعلى المساعدة

سلام

لا إلــــــــــــــه إلا انت سبحانك إني كنت من الظالمين

استغفر الله إلذي لا إله إلا هو واتوب إلـيه

#11

السلام عليكم

شكرا جزيلا لك عبد الله عياش

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

شكرا جزيلا

#12

السلام عليكم

شكرا جزيلا لك عبد الله عياش

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

شكرا جزيلا

#13

السلام عليكم ورحمت الله وبركاته

اقدم الشكر الى كل من اطلع وشارك في هذا المنتدى الذي هو اكثر من رائع واللذي يهدف الى نشر العلم بين الامه الاسلاميه والعالم

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

اخواني

اريد عمل مقارنه بين بين اسم المستخدم في قاعدة البيانات والاسم الجديد من اجل الدخول بالاصح عمل كلمة سر

#14

أختي قمـ14ـر و إلى كل الإخوة في قاعدة البيانات يمكن تخزين الملفات و نوع الحقول يكون الآتــــي :1

1- TinyBlob : حوالي 256 بايت .

2- Blob : حوالي 64 كيلو بايت .

3- mediumBlob : حوالي 16 ميجا بايت .

4- longBlob : حوالي 4 قيقابايت .

''‏اللهم إني أسالك إيمانا دائما وأسألك قلبا خاشعا وأسألك علما ‏نافعا وأسألك يقينا صادقا وأسألك دينا قيما وأسألك العافية من كل ‏بلية''

'‏اللهم أغفر للمؤمنين و المؤمنات و المسلمين و المسلمات الأحياء ‏منهم و الأموات'

www.it-scoop.com

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…