Ошибка при отображении изображения в переполнении стека

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

<?php
$image = "/path/to/image.jpg";
$myfile = fopen($image, "r") or die("Unable to open file!");

$logo = fread($myfile,filesize($image));
echo"<img src=\"$logo\" width=\"100\" height=\"100\"\/>";
?>

Я случайно не написал команду или пропустил что-то, что мне нужно было сделать?

1

Решение

Ваши данные — это не путь, а содержимое файла, и это нормально, но вы должны использовать синтаксис URI данных:

$logo = "data:image/jpg;base64,".base64_encode($logo);
echo"<img src=\"$logo\" width=\"100\" height=\"100\"\/>";

Смотрите аналогичную тему здесь: Невозможно отобразить изображение из таблицы MySQL

1

Другие решения

Атрибут img src принимает имя файла и самостоятельно обрабатывает изображение и отображает его. Если вы откроете файл изображения в текстовом редакторе, вы получите интересную тарабарщину. То, что вы пытались сделать в приведенном выше коде, помещает этот бред в src. Вы можете видеть это, если вы делаете View Source в вашем браузере.

Если вы хотите показать изображение, которое вам на самом деле не нужен php, это просто <img src="/path/to/image.jpg"> предоставление пути внутри вашего корня.

0

Вы должны предоставить изображение url как src а НЕ это содержание, вот так:

$log = "http://ideone.com/gfx2/img/spoj.png";

echo "<img src='$log' width='100' height='100'/>";

DEMO

Допустим, изображение находится в том же каталоге, что и HTML-страница, тогда вы можете просто использовать:

$log = "spoj.png";
echo "<img src='$log' width='100' height='100'/>";

Давайте представим, что изображение находится внутри каталога с именем images в той же директории, что и HTML-страница, вы можете использовать:

$log = "images/spoj.png";
echo "<img src='$log' width='100' height='100'/>";
0
По вопросам рекламы [email protected]