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

السؤال

Recommended Posts

  • 1
نشر

يمكنك القيام بذلك كالتالي:

        $sql = "SELECT imageType,imageData FROM output_images WHERE imageId=" . $_GET['image_id'];
		$result = mysqli_query($conn, $sql) or die("<b>Error:</b> Problem on Retrieving Image BLOB<br/>" .           mysqli_error($conn));
		$row = mysqli_fetch_array($result);
		header("Content-type: " . $row["imageType"]);
        echo $row["imageData"];

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

  • 1
نشر

يمكنك القيام بذلك عن طريق الأستعلام select في mysql و إرجاع اسم الصورة من الحقل الذي تم تخزين اسم الصورة فيها فمثلاً قممنا ببرمجة فورم لرفع الصورة وحفظها داخل قاعدة البيانات

<form name="newad" method="post" enctype="multipart/form-data" action="bas.php">
<table>
<tr><td><input type="file" name="image"></td></tr>
<input type="hidden" name="MAX_FILE_SIZE" value="90000" /> 
<tr><td><input name="Submit" type="submit" value="Upload image"></td></tr>
</table> 
</form>
<?php

$con = mysqli_connect("localhost", "root", "") or die ("فشل في الإتصال بقاعدة لبينات ");
$db=mysqli_select_db($con, 'tc');


define ("MAX_SIZE","10"); 
// this function to get extension of files.................
function getExtension($str) {
$i = strrpos($str,".");
if (!$i) { return ""; }
$l = strlen($str) - $i;
$ext = substr($str,$i+1,$l);
return $ext;
}
$errors=0;
if(isset($_POST['Submit'])) 
{
$image=$_FILES['image']['name'];
if ($image) 
{
$filename = stripslashes($_FILES['image']['name']);
$extension = getExtension($filename);
$extension = strtolower($extension);
if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif")) 
{
echo '<h1>Unknown extension!</h1>';
$errors=1;
}
else
{
$size=filesize($_FILES['image']['name']);
if ($size > MAX_SIZE*1024)
{
echo '<h1>You have exceeded the size limit!</h1>';
$errors=1;
}
$image_name=time().'.'.$extension;
$newname="upload/".$image_name;
//$copied = copy($_FILES['image']['tmp_name'], $newname);
$copied = move_uploaded_file($_FILES["image"]["tmp_name"], $newname);
if (!$copied) 
{
echo '<h1>Copy unsuccessfull!</h1>';
$errors=1;
}}}}
if(isset($_POST['Submit']) && !$errors) 
{
echo "<h1>File Uploaded Successfully! Try again!</h1>";
// echo "<img src=$newname>";
// ------------------------------------------- To Save Path of Image in DataBase and show it on Browser...

//  table name
$result = @mysqli_query($con, "INSERT INTO `news` VALUES ('', '$newname')");
if($result)
{
	echo "file added";
}
else
{
	echo "error";
}
$gotten = @mysqli_query($con, "Select * From news"); 
        while($row = @mysqli_fetch_array($gotten)) { 
$pic=$row['path'];
$id=$row['id'];
// echo "<img src=$pic>";
// Here to Display Image on Browser and In Blank Browser if you like.....
echo "
<a href='$pic' target='_blank'>
                            <img border='0' src=$pic alt=$pic>
                            </a>  
";
}
}
?>

ومثلا هذا جدول قاعدة البيانات 

CREATE TABLE `news` (
  `id` int(11) NOT NULL,
  `path` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

فلو تلاحظ في الكود التالي قمنا برفع صورة و من ثم حفظ الصورة داخل حقل path في جدول قاعدة البيانات news, ومن ثم قمنا بجلب الصور المخزنة عن طريق الاستعلام التالي داخل الكود المرفق إعلاه كاملا.

//  table name
$result = @mysqli_query($con, "INSERT INTO `news` VALUES ('', '$newname')");
if($result)
{
	echo "file added";
}
else
{
	echo "error";
}
$gotten = @mysqli_query($con, "Select * From news"); 
        while($row = @mysqli_fetch_array($gotten)) { 
$pic=$row['path'];
$id=$row['id'];
// echo "<img src=$pic>";
// Here to Display Image on Browser and In Blank Browser if you like.....
echo "
<a href='$pic' target='_blank'>
                            <img border='0' src=$pic alt=$pic>
                            </a>  
";
}

 

  • 0
نشر
بتاريخ On 17‏/2‏/2021 at 14:27 قال عبد الله محمد5:

يمكنك القيام بذلك كالتالي:


        $sql = "SELECT imageType,imageData FROM output_images WHERE imageId=" . $_GET['image_id'];
		$result = mysqli_query($conn, $sql) or die("<b>Error:</b> Problem on Retrieving Image BLOB<br/>" .           mysqli_error($conn));
		$row = mysqli_fetch_array($result);
		header("Content-type: " . $row["imageType"]);
        echo $row["imageData"];

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

هذه طريقة تبدوا جيده لاكن مشكلتها انها ترجع الصوره كرموز 

شكرا لك

بتاريخ On 17‏/2‏/2021 at 14:36 قال بلال زيادة:

يمكنك القيام بذلك عن طريق الأستعلام select في mysql و إرجاع اسم الصورة من الحقل الذي تم تخزين اسم الصورة فيها فمثلاً قممنا ببرمجة فورم لرفع الصورة وحفظها داخل قاعدة البيانات


<form name="newad" method="post" enctype="multipart/form-data" action="bas.php">
<table>
<tr><td><input type="file" name="image"></td></tr>
<input type="hidden" name="MAX_FILE_SIZE" value="90000" /> 
<tr><td><input name="Submit" type="submit" value="Upload image"></td></tr>
</table> 
</form>
<?php

$con = mysqli_connect("localhost", "root", "") or die ("فشل في الإتصال بقاعدة لبينات ");
$db=mysqli_select_db($con, 'tc');


define ("MAX_SIZE","10"); 
// this function to get extension of files.................
function getExtension($str) {
$i = strrpos($str,".");
if (!$i) { return ""; }
$l = strlen($str) - $i;
$ext = substr($str,$i+1,$l);
return $ext;
}
$errors=0;
if(isset($_POST['Submit'])) 
{
$image=$_FILES['image']['name'];
if ($image) 
{
$filename = stripslashes($_FILES['image']['name']);
$extension = getExtension($filename);
$extension = strtolower($extension);
if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif")) 
{
echo '<h1>Unknown extension!</h1>';
$errors=1;
}
else
{
$size=filesize($_FILES['image']['name']);
if ($size > MAX_SIZE*1024)
{
echo '<h1>You have exceeded the size limit!</h1>';
$errors=1;
}
$image_name=time().'.'.$extension;
$newname="upload/".$image_name;
//$copied = copy($_FILES['image']['tmp_name'], $newname);
$copied = move_uploaded_file($_FILES["image"]["tmp_name"], $newname);
if (!$copied) 
{
echo '<h1>Copy unsuccessfull!</h1>';
$errors=1;
}}}}
if(isset($_POST['Submit']) && !$errors) 
{
echo "<h1>File Uploaded Successfully! Try again!</h1>";
// echo "<img src=$newname>";
// ------------------------------------------- To Save Path of Image in DataBase and show it on Browser...

//  table name
$result = @mysqli_query($con, "INSERT INTO `news` VALUES ('', '$newname')");
if($result)
{
	echo "file added";
}
else
{
	echo "error";
}
$gotten = @mysqli_query($con, "Select * From news"); 
        while($row = @mysqli_fetch_array($gotten)) { 
$pic=$row['path'];
$id=$row['id'];
// echo "<img src=$pic>";
// Here to Display Image on Browser and In Blank Browser if you like.....
echo "
<a href='$pic' target='_blank'>
                            <img border='0' src=$pic alt=$pic>
                            </a>  
";
}
}
?>

ومثلا هذا جدول قاعدة البيانات 


CREATE TABLE `news` (
  `id` int(11) NOT NULL,
  `path` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

فلو تلاحظ في الكود التالي قمنا برفع صورة و من ثم حفظ الصورة داخل حقل path في جدول قاعدة البيانات news, ومن ثم قمنا بجلب الصور المخزنة عن طريق الاستعلام التالي داخل الكود المرفق إعلاه كاملا.


//  table name
$result = @mysqli_query($con, "INSERT INTO `news` VALUES ('', '$newname')");
if($result)
{
	echo "file added";
}
else
{
	echo "error";
}
$gotten = @mysqli_query($con, "Select * From news"); 
        while($row = @mysqli_fetch_array($gotten)) { 
$pic=$row['path'];
$id=$row['id'];
// echo "<img src=$pic>";
// Here to Display Image on Browser and In Blank Browser if you like.....
echo "
<a href='$pic' target='_blank'>
                            <img border='0' src=$pic alt=$pic>
                            </a>  
";
}

 

تبدو طريقة جيدة لاكن هل لابد ان ارفع الصورة عبر الموقع ومن ثم اقوم بعرضها؟

ام يوجد طريقه استرجاع للصورة عندما تكون الصورة مضافة من mysql نفسه

شكرا لك 

  • 0
نشر
بتاريخ 18 دقائق مضت قال HassanAli:

هذه طريقة تبدوا جيده لاكن مشكلتها انها ترجع الصوره كرموز 

شكرا لك

تبدو طريقة جيدة لاكن هل لابد ان ارفع الصورة عبر الموقع ومن ثم اقوم بعرضها؟

ام يوجد طريقه استرجاع للصورة عندما تكون الصورة مضافة من mysql نفسه

شكرا لك 

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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...