PHP-файл как img src

Я хочу напечатать изображение с помощью тега img, src является файлом php, скрипт также обработает некоторые действия на сервере scirpt. У кого-нибудь есть пример кода?

вот мой тестовый код, но без эффекта

img.html

<img src="visitImg.php" />

visitImg.php

<?

header('Content-Type: image/jpeg');

echo "<img src=\"btn_search_eng.jpg\" />";

?>

7 ответов

Используйте readfile:

<?php
header('Content-Type: image/jpeg');
readfile('btn_search_eng.jpg');
?>

Непосредственно из документов php fpassthru:

<?php

// open the file in a binary mode
$name = './img/ok.png';
$fp = fopen($name, 'rb');

// send the right headers
header("Content-Type: image/png");
header("Content-Length: " . filesize($name));

// dump the picture and stop the script
fpassthru($fp);
exit;
?>

В качестве объяснения вам необходимо передать данные изображения в качестве выходных данных из сценария, а не данные html. Вы можете использовать другие функции, такие как fopen, readfileи т. д. и т. д.

ОБНОВИТЬ

что вы можете сделать без использования include как сказано ниже в комментариях:

попробуй это:

<? 
$img="example.gif"; 
header ('content-type: image/gif'); 
readfile($img); 
?> 

Код выше с этого сайта

Оригинальный ответ
НЕ пытайтесь это:

<?

header('Content-Type: image/jpeg');

include 'btn_search_eng.jpg';   // SECURITY issue for uploaded files!

?>

"<img src=\"btn_search_eng.jpg\" />" недопустимые данные изображения. Вы действительно должны прочитать содержимое btn_search_eng.jpg и повторить их.

Смотрите здесь о различных способах передачи файлов в PHP.

Если вы собираетесь использовать header('Content-Type: image/jpeg'); в верхней части вашего сценария, тогда вывод вашего сценария должен быть изображением JPEG! В вашем текущем примере вы указываете тип содержимого изображения, а затем предоставляете вывод HTML.

То, что вы повторяете, - это HTML, а не двоичные данные, необходимые для создания изображения JPEG. Чтобы получить это, вам нужно либо прочитать внешний файл, либо сгенерировать файл, используя функции манипулирования изображениями в PHP.

если вы используете base64, это будет

      <?php
    header('Content-Type: image/jpeg');
    echo(base64_decode('BASE64ENCODEDCONTENT'));
?>
Другие вопросы по тегам