Я пытаюсь понять, как файловые системы работают в 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\"\/>";
?>
Я случайно не написал команду или пропустил что-то, что мне нужно было сделать?
Ваши данные — это не путь, а содержимое файла, и это нормально, но вы должны использовать синтаксис URI данных:
$logo = "data:image/jpg;base64,".base64_encode($logo);
echo"<img src=\"$logo\" width=\"100\" height=\"100\"\/>";
Смотрите аналогичную тему здесь: Невозможно отобразить изображение из таблицы MySQL
Атрибут img src принимает имя файла и самостоятельно обрабатывает изображение и отображает его. Если вы откроете файл изображения в текстовом редакторе, вы получите интересную тарабарщину. То, что вы пытались сделать в приведенном выше коде, помещает этот бред в src. Вы можете видеть это, если вы делаете View Source в вашем браузере.
Если вы хотите показать изображение, которое вам на самом деле не нужен php, это просто <img src="/path/to/image.jpg">
предоставление пути внутри вашего корня.
Вы должны предоставить изображение url
как src
а НЕ это содержание, вот так:
$log = "http://ideone.com/gfx2/img/spoj.png";
echo "<img src='$log' width='100' height='100'/>";
Допустим, изображение находится в том же каталоге, что и 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'/>";