php image retrieve не показывает mysqli

1

У меня проблема с сохранением изображений из базы данных phpmyadmin.

У меня есть два файла, первый - это image.php, который, как предполагается, извлекает изображения из базы данных:

<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
$conn = mysqli_connect("hostname","username","password");
if(!$conn)
{
echo mysql_error();
}
$db = mysqli_select_db("imagestore");
if(!$db)
{
echo mysql_error();
}
$ano = $_GET['ano'];
$q = "SELECT aphoto,aphototype FROM animaldata where ano='$ano'";
$r = mysqli_query("$q",$conn);
if($r)
{

$row = mysqli_fetch_array($r);
$type = "Content-type: ".$row['aphototype'];
header($type);

readfile($ano);
echo mysql_real_escape_string.$row['aphoto'];
}
else
{
echo mysql_error();
}

?>

и show.php, который, как предполагается, отображает полученное изображение:

 <?php
//show information
ini_set('display_errors',1);
error_reporting(E_ALL);

include "connect.php";


$q = "SELECT * FROM animaldata";
$r = mysqli_query($conn,$q);
if($r)
{
while($row=mysqli_fetch_array($r))
{
//header("Content-type: text/html");
echo "</br>";
echo $row['aname'];
echo "</br>";
echo $row['adetails'];
echo "</br>";

//$type = "Content-type: ".$row['aphototype'];
//header($type);
echo "<img src=image.php?ano=".$row['ano']." width=300 height=100/>";


}
}
else
{
echo mysql_error();
}
?>

Когда я попробую show.php, я получаю этот результат:

Изображение 174551

Я был бы очень благодарен за любую помощь, потому что я пробовал много разных кодов, но я не мог найти решение и все еще получал тот же результат.

Спасибо.

  • 1
    в вашем первом файле это должно быть $r = mysqli_query($conn,$q); вместо $r = mysqli_query("$q",$conn);
  • 1
    Также в некоторых местах вы используете mysql fuctions, а в некоторых местах mysqli, пожалуйста, исправьте то же самое. mysqli_real_escape_string - это функция, которую вам также нужно изменить.
Показать ещё 2 комментария
Теги:
mysqli

1 ответ

1
Лучший ответ

Вы должны избавиться от строки readfile поскольку она не нужна, а также mysqli_real_escape_string из строки ниже. В противном случае это выглядит так, как будто оно может работать, но не зная, как вы храните изображения, я не могу точно знать. Например, если вы сохранили их в кодировке base64, вам нужно будет эхо-версию строки с расширением base64.

  • 0
    Спасибо :), да. Отсутствует base64_encode.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню