Разбитое изображение с readfile и file_get_contents - PullRequest
5 голосов
/ 04 мая 2011

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

<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.

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

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

Ответы [ 4 ]

11 голосов
/ 12 февраля 2015

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

5 голосов
/ 04 мая 2011

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

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

2 голосов
/ 04 мая 2011

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

<?php
$file = "http://localhost/sales/test.jpg";
header('Content-type: image/jpeg');
readfile($file);
0 голосов
/ 04 мая 2011

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

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

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

...