• 0

ماهي الطرق المعتمدة في رفع الصور باستخدام php؟

أريد معرفة ما هي الطرق التي تعتمد في أغلب السكربتات المبرمجة باستخدام php والتي تعتمد على رفع الصور، هل يتم تخزين الصور كــ binary data في قاعدة البيانات، أم يتم تخزينها في ملف images مثلا.

ما هي أفضل طريقة من حيث الخفة والأرشفة وان أمكن شرح لكل طريقة وشكرًا جزيلًا.

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

اهلا اخي ، 
باختصار طريقة رفع الصور بـ php في اغلب السكريبتات (لكي لا أقول كل السكريبتات) .. 
هي حفظ الصورة في مجلد images وحفظ اسم الصورة في قاعدة البيانات .. 
ومن ثم ينادونها في src التابع لوسم img كالتالي :

<img src="المسار الذي ينقلنا الى اسم المجلد/اسم الصورة">

مثال (حيث إن $image هو اسم الصورة من جدول قاعدة البيانات) :

<img src='directory/images/<?php echo $image ?>'>

أتمنى أن يكون كل شيء واضح ،
تحياتي

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0
بتاريخ 2 ساعات قال hassenzouari98:

اهلا اخي ، 
باختصار طريقة رفع الصور بphp في اغلب السكريبتات (لكي لااقول كل السكريبتات) .. 
هي حفظ الصورة في مجلد images وحفظ اسم الصورة في قاعدة البيانات .. 
ومن ثم ينادونها في src التابع لوسم img كالتالي :


<img src="المسار الذي ينقلنا الى اسم المجلد/اسم الصورة">

مثال (حيث ان $image هو اسم الصورة من جدول قاعدة البيانات) :


<img src='directory/images/<?php echo $image ?>'>

اتمنى ان يكون كل شئ واضح ،
تحياتي

يعني الطريقة الاخرى غالبا لا تستعمل ؟؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

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

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

الطريقة التي ذكرها الأخ حسان هي الأكثر إنتشارا، وتوجد طريقة أخرى لرفع الصور لكنها ليست شائعة بشكل كبير حسب علمي، وتعتمد هذه الطريقة على حفظ الملف بشكل بيناري في قاعدة البيانات حيث سيكون نوع البيانات هو Blob كما في المثال التالي:

mysql> CREATE TABLE tbl_images (
> id tinyint(3) unsigned NOT NULL auto_increment,
> image blob NOT NULL,
> PRIMARY KEY (id)
> );

لو فرضنا أنك كتبت شيفرة برمجية مشابهة لهذه لرفع الملف:

<form enctype="multipart/form-data" action="insert.php" method="post" name="changer">
<input name="MAX_FILE_SIZE" value="102400" type="hidden">
<input name="image" accept="image/jpeg" type="file">
<input value="Submit" type="submit">

وكانت هذه هي معلومات الاتصال بقاعدة البيانات:

// Create MySQL login values and

// set them to your login information.

$username = "YourUserName";

$password = "YourPassword";

$host = "localhost";

$database = "binary";


// Make the connect to MySQL or die

// and display an error.

$link = mysql_connect($host, $username, $password);

if (!$link) {

die('Could not connect: ' . mysql_error());

}


// Select your database

mysql_select_db ($database);

فإن الشيفرة البرمجية لادخال الصورة إلى قاعدة البيانات هي كالتالي:


// Make sure the user actually

// selected and uploaded a file

if (isset($_FILES['image']) && $_FILES['image']['size'] > 0) {


// Temporary file name stored on the server

$tmpName = $_FILES['image']['tmp_name'];


// Read the file

$fp = fopen($tmpName, 'r');

$data = fread($fp, filesize($tmpName));

$data = addslashes($data);

fclose($fp);



// Create the query and insert

// into our database.

$query = "INSERT INTO tbl_images ";

$query .= "(image) VALUES ('$data')";

$results = mysql_query($query, $link);


// Print results

print "Thank you, your file has been uploaded.";


}

else {

print "No image selected/uploaded";

}


// Close our MySQL Link

mysql_close($link);

?>

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

المصدر

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن