php изображение не отображается - PullRequest
0 голосов
/ 02 марта 2010

у меня есть следующий php-код, который отображает логотип компании

     <?php
     $key=$_GET['key'];
     /// key process ///

     ////////////////////
     ?>
     <img src=images/logo.jpg" />

когда я запускаю этот файл php, это шоу logo.jpg но когда я звоню это от

       <img src="../temp.php?key=123" width="438" height="100" />

изображение не показывалось

на самом деле, что я хочу, чтобы отслеживать это изображение.

Спасибо

Ответы [ 5 ]

4 голосов
/ 02 марта 2010

Если вы хотите использовать что-то вроде этого:

Тогда temp.php должно на самом деле:

  • отправляет HTTP-заголовки для некоторого типа контента изображения
  • и отправьте фактическое содержимое изображения .
    • , а не HTML-код

Это связано с тем, что браузер ожидает, что URL-адрес, на который указывает атрибут src тега <img>, действительно соответствует действительному изображению, а не некоторому тексту HTML.


Например, temp.php может содержать что-то вроде этого:

<?php
$key = $_GET['key'];
// TODO : security check on $key !!!
$file = 'images/logo-' . $key . '.jpg';
header('Content-type: image/jpeg');
readfile($file);
?>


Как пара сиденот:

  • Вы должны отправить правильный Content-type HTTP-заголовок; Это означает, что вы должны знать, если ваше изображение GIF, JPEG, PNG, ...
  • Вы должны проверить правильность $_GET['key'], чтобы не отправлять содержимое ненужного файла!
  • Абсолютно не должно быть пробелов до или после тегов <?php ... ?>: единственным выводом должно быть содержимое изображения.
3 голосов
/ 02 марта 2010

Чтобы это работало, в вашем temp.php вам необходимо прочитать и вывести фактические данные изображения (перед header('Content-type: image/jpeg');.

HTML-файл, содержащий тег изображения, нельзя использовать в качестве src для другого тега изображения.

2 голосов
/ 02 марта 2010

Хорошо, PHP-скрипт возвращает вывод HTML, а не изображение. Если вы хотите, чтобы ваш файл temp.php возвращал изображение, которое можно использовать в элементе изображения, вам нужно использовать PHP-GD для создания изображения, импортировать / копировать в него изображение, а затем вывести изображение в формате JPEG с соответствующим изображением. заголовки.

2 голосов
/ 02 марта 2010

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

temp.php должен выглядеть примерно так:

header('Content-Type: image/jpeg');
echo file_get_contents($the_path_to_image);
0 голосов
/ 02 марта 2010

Это только я или ... Если код действительно то, что у вас есть

 <img src=images/logo.jpg" />

должно быть

<img src = "images/logo.jpg">

У него нет открывающей кавычки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...