Проблема вывода изображения PHP - PullRequest
0 голосов
/ 27 февраля 2012

У меня проблема с генерацией и экспортом изображения с помощью php.

Итак, у меня есть это:

header('Content-type: image/jpeg');
header('Content-Disposition: inline; filename=WHATEVER.jpg');
$dragon = self::static_dragon($numbers,$avatars,$new_name,$filepath);

Внутри функции static_dragon я загружаю данные из базы данных, работаю с ними и т. Д.и затем:

imagejpeg($canvas,'',60);
imagedestroy($canvas); 
return true;

Чего я хочу добиться, так это того, что если я напишу
image

Это даст мне изображение. Все работаетнормально, соединение с базой данных, даже сохранение окончательного файла jpg на сервере, единственная проблема в том, что браузер не показывает мне изображение. Я думаю, может быть, какая-то проблема в заголовках? Кстати, я не могу выполнить заголовки после функции, так как скрипт говорит мне, что заголовкибыли уже отправлены (хотя я не вижу ни одной команды, которая могла бы сделать это ...)

Большое спасибо за помощь

Ответы [ 3 ]

2 голосов
/ 27 февраля 2012

Вы делаете то же самое:

header('Content-type: image/jpeg');
header('Content-Disposition: inline; filename=WHATEVER.jpg');

$im = imagecreatefromjpeg('download.jpg') or  or die('Cannot Initialize new GD image stream'); // this will let u know whether the creation of image resource was a failure

imagestring($im, 3, 40, 20, 'GD Library', 0xFFBA00); //just a add on 

imagejpeg($im);
imagedestroy($canvas);
return true;

Приведенный выше код отлично работает в браузере. Есть ошибки?

@ Том, как вы упоминали, вы получаете ошибку: «заголовок уже отправлен» для imagecreatefromjpeg. Сначала устраните ошибку, так как imagecreatefromjpeg () предоставляет ресурс для изображения. Если ресурс не работает, изображение не будет видимо.

Попробуйте с помощью @imagecreatefromjpeg ()

1 голос
/ 27 февраля 2012

Так что вместо отображения $ canvas используйте это:

$this->getResponse()->setContent($canvas)

в головной части вашего php-файла.

(я предположил, что $ canvas - это объект, загруженный из БД)

Пожалуйста, убедитесь, что вы не напечатали ничего другого в файле php.

1 голос
/ 27 февраля 2012

Разве вы не забыли добавить объект

 echo $dragon

в содержимое файла php?:) добавьте эту строку в конец вашего php-файла:

echo $dragon

см.

...