اذهب إلى المحتوى

السؤال

نشر

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

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

Recommended Posts

  • 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
نشر

الطريقة التي ذكرها الأخ حسان هي الأكثر إنتشارا، وتوجد طريقة أخرى لرفع الصور لكنها ليست شائعة بشكل كبير حسب علمي، وتعتمد هذه الطريقة على حفظ الملف بشكل بيناري في قاعدة البيانات حيث سيكون نوع البيانات هو 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);

?>

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

المصدر

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...