powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP коверкает изображение.
3 сообщений из 3, страница 1 из 1
PHP коверкает изображение.
    #38855961
Здравствуйте! Есть скрипт, который должен показывать посетителю сайта различные изображения:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
$finfo = new finfo(FILEINFO_MIME);
// изображение для показа
// оригинал: http://orgs.1kursk.ru/IMGS/mo_banners/9fa3e39b0db0c4cc9912fb3270604f07.gif
$img = './IMGS/mo_banners/9fa3e39b0db0c4cc9912fb3270604f07.gif';
// Получаем mime-type
@list($mime, $trash) = explode(';', $finfo->file($img), 2);
// строка выше может выкинуть варнинг, поэто чистим буфер вывода
ob_end_clean();
// отправка изображения
header('Content-Type: ' . $mime);
header('Content-Length: ' . filesize($img));
header('Accept-Ranges: bytes');
@readfile($img);



Суть проблемы: данный скрипт работает как надо, но только не с изображенем из примера (см. ссылку на оригинал в коде в комменте).
Его он почему-то коверкает и отображает вот так: http://orgs.1kursk.ru/IMGS/mo_banners/damaged.gif

На сервере используется PHP 5.4
Искажения наблюдал в Google Chrome, IE, Firefox последних версий.

В дополнение, привожу заголвки ответа сервера: при прямом обращении к гифке не через скрипт и при обращении к скрипт показа изображения.
Прямой запрос к изображению:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
HTTP/1.1 200 OK
Server=nginx
Date=Fri, 16 Jan 2015 08:37:22 GMT
Content-Type=image/gif
Content-Length=2649
Last-Modified=Thu, 18 Dec 2014 15:24:25 GMT
Connection=keep-alive
ETag="5492f1a9-a59"
Accept-Ranges=bytes



Запрос к скрипту показа изображений (для той дже гифки):
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
HTTP/1.1 200 OK
Server=nginx
Date=Fri, 16 Jan 2015 08:39:53 GMT
Content-Type=image/gif
Content-Length=2649
Connection=keep-alive
X-Frame-Options=SAMEORIGIN
Accept-Ranges=bytes
...
Рейтинг: 0 / 0
PHP коверкает изображение.
    #38856207
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Климов Дмитрий,

Не должен бы коверкать. Отдаваемый через скрипт и "напрямую" - это физически один и тот же файл или разные?
Впрочем, есть предположение, что при отдаче скриптом буфер PHP не сбрасывается клиенту до конца. Попробуйте сохранить переданный скриптом файл и проверить соответствие его размера в байтах с исходным файлом. И/или md5 можно сравнить.
...
Рейтинг: 0 / 0
PHP коверкает изображение.
    #38856262
vkle, спасибо) Файл тот же, но md5 на выходе не совпал.
Поскольку код скрипта я скинул частично, начал проверять остальной код и нашёл момент с неявным вызовом (через register_shutdown_function) ф-ции, которая весьма специфично обрабатывала весь аутпут от всех PHP скриптов перед отдачей ответа клиенту =\

Тема закрыта!
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP коверкает изображение.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]