Неработающее изображение с readfile и file_get_contents

Я пытаюсь использовать функцию, чтобы заставить это работать:

<img src='login.php?image=ind_legend.jpg'>

Но я не могу пройти через функцию для размещения изображения. Я вернулся на пару шагов назад и попробовал только эту часть кода:

<?php
$file = "http://localhost/sales/test.jpg";
header('Content-type: image/jpeg');
readfile($file);
?>

или используя эту функцию:

echo file_get_contents($source);

но дело в том, что единственное, что я получаю, это битый крест изображения (IE) или ничего в Firefox.

Буду признателен за любые предложения

заранее спасибо


person mgv_1513    schedule 04.05.2011    source источник


Ответы (4)


В вашем PHP-скрипте наверняка есть пробелы или UTF-8 BOM, невидимый перед ваш маркер открытия <?php. Воспользуйтесь шестнадцатеричным редактором, чтобы узнать.

Для дальнейшей отладки откройте URL-адрес изображения http://localhost/login.php?image=ind_legend.jpg прямо в браузере, сохраните файл. А затем сравните его с исходным JPEG.

person mario    schedule 04.05.2011

используйте функцию ob_clean() в php перед readfile()

person José Luiz    schedule 12.02.2015
comment
Это способ обойти проблему, фактическое решение проблемы находится в принятом ответе. - person Gall Annonim; 09.01.2018

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

<?php
$file = "http://localhost/sales/test.jpg";
header('Content-type: image/jpeg');
readfile($file);
person Femi    schedule 04.05.2011

прежде всего укажите в браузере http://youraddress/login.php?image=ind_legend.jpg и проверьте результат.

Возможно, файл /sales/test.jpg поврежден или вы не включили оболочку http:// для readline.

Наконец, сохраните поврежденное изображение с помощью параметра «Сохранить изображение как...» контекстного меню вашего браузера и попробуйте открыть его с помощью текстового редактора. Я не удивлюсь, если вы найдете сообщение об ошибке (если они у вас включены).

person Eineki    schedule 04.05.2011