2014-10-12 3 views
0

Мне нужна помощь в решении этой проблемы. Я сохранил свои фотографии как blob в базе данных mysql, и когда я пытаюсь запустить этот код для извлечения данных из базы данных, изображения отображаются как штамп символов, но остальные типы данных работают нормально. Я думаю, что браузер не знает, что данные - это фотография. Как я могу преобразовать blob в изображения в этом коде.Как я могу отображать переменные BLOB как изображения в php

<?php 
    include_once('db.php'); 

    if(isset($_POST['personID'], $_POST['fName'], $_POST['lName'], $_POST['title'], $_POST['pic'])) 
    { 
     $personID= $_POST['personID']; 
     $fName= $_POST['fName']; 
     $lName= $_POST['lName']; 
     $title= $_POST['title']; 
     $pic= $_POST['pic']; 

     if(mysql_query("INSERT INTO samidb.persons VALUES ('$personID','$fName', '$lName', '$title',  '$pic')")) 
     echo "Successful Insertion!"; 
     else 
     echo "Please try again"; 
    } 


$res = mysql_query("SELECT * FROM samidb.persons"); 

?> 
<html> 
<head> 

<style type="text/css"> 
li { list-style-type: none; display: inline-block; padding: 10px; text-align: center;} 
//li:hover { background-color: yellow; } 
</style> 
</head> 
<body> 
<form action="." method="POST"> 
person ID: <input type="text" name="personID"/><br /> 
First Name: <input type="text" name="fName"/><br /> 
Last Name: <input type="text" name="lName"/><br /> 
title: <input type="text" name="title"/><br /> 
pic: <input type="image" name="pic"/><br /> 
<input type="submit" value=" Enter "/> 
</form> 

<h1>List from database ..</h1> 
<ul> 
<?php 
    while($row = mysql_fetch_array($res)) 
    echo "<li>$row[personID]. <li>$row[fName] <li>$row[pic]</li> 
      <li><a href='edit.php?edit=$row[personID]'>edit</a></li> 
      <li><a href='delete.php?del=$row[personID]'>delete</a></li><br />"; 
?> 
</ul> 
</body> 
</html> 
+0

1) читайте о инъекциях sql 2) код не показывает, как вы пытаетесь выводить изображения. Одно изображение + тип контента для каждого запроса HTTP. Вывод изображений не может быть смешан с выходом текста. – Cheery

+0

есть причина, по которой мы предлагаем не хранить изображения в db. –

+0

гораздо лучше хранить путь изображения – Alex

ответ

0

Большинство людей просто хранят путь к изображению. Это легко, он сохраняет экономию данных в файловой системе, созданных для такого рода вещей, сокращает размер db и т. Д.

Однако вы должны иметь возможность использовать его как встроенное изображение, как правило, база 64 закодированы, как упомянуто здесь:

Embedding Base64 Images

FYI, я проверил это, используя этот код:

<img src="data:image/png;base64,<?php echo base64_encode (file_get_contents('./screenshot.png')); ?>" /> 

Вы могли бы сделать что-то вроде:

<img src="data:image/png;base64,<?php echo base64_encode ($row['pic']); ?>" /> 
Смежные вопросы