Бьются картинки, открываются не полностью, но не у всех

12
M
На сайте с 02.01.2013
Offline
38
6879

Проблема известна давно, но проявляется очень редко. По крайней мере письма от пользователей приходят раз в полгода с жалобой на то, что фотки не открываются.

Сделал приватное отображение фотографий. По прямой ссылке они не доступны, ссылка через Rewrite режется на параметры и передаётся в скрипт, который и показывает или не показывает фото в зависимости от настроек приватности.



header($content_type); // например Content-type: image/jpeg
$img = file_get_contents( $dir.'/'.$photo );

touch( $dir.'/'.$photo );
echo $img;

Выглядит так, симптомы:

- открывается только верхняя часть картинки либо оно не открывается вообще - серый прямоугольник под размеры фото

- статика, по прямой ссылке открывается отлично

Я перепробовал много разных вариантов, но с "проблемным" пользователем ничего решить не удавалось. Воссоздать ошибку не получается, у меня и у остальных 100.000 пользователей работает как часы :((

От чего это происходит?

S4
На сайте с 26.09.2009
Offline
80
#1

Такое бывает, когда у него на инет устройство драйвера не родные, в результате чего бьются скачиваемые картинки-файлы. Как вариант

P
На сайте с 16.03.2009
Offline
144
#2

Попробуйте nginx secure_link

M
На сайте с 02.01.2013
Offline
38
#3

poiuty, да. видимо это то что нужно. но я в серверной части пока что очень поверхностно разбираюсь. начал читать, так там что-то страшное )) попробую поискать ссылок в гугле с примерами под мой случай

swimer42, видимо так и есть, поскольку частота проблемы приблизительно 1:100000 - что очень редко, но есть

P
На сайте с 16.03.2009
Offline
144
#4
musitann:
poiuty, да. видимо это то что нужно. но я в серверной части пока что очень поверхностно разбираюсь. начал читать, так там что-то страшное )) попробую поискать ссылок в гугле с примерами под мой случай

Пример конфига nginx + пример генерации ссылки на php

Начиная с "Видео на сайте + стриминг с помощью nginx, защита от хотлинка"

Привязываем к IP пользователя + time()

Glueon
На сайте с 26.07.2013
Offline
172
#5

Не знаю почему, но проблема похожа на траблу с MTU у клиентов ...

С Yota с неверно выставленном MTU большие вещи либо открываются наполовину, либо вообще никак. То же самое с разными DSL-модемными товарищами.

По решению - echo это не очень. Если есть nginx - лучше X-Accel-Redirect в private location делайте после валидации пользователя, если secure_link или аддон expire_link того же nginx вам не очень.

Есть много IP-сетей в аренду под прокси, парсинг, рассылки (optin), vpn и хостинг. Телега: @contactroot ⚒ ContactRoot команда опытных сисадминов (/ru/forum/861038), свой LIR: сдаем в аренду сети IPv4/v6 (/ru/forum/1012475).
M
На сайте с 02.01.2013
Offline
38
#6
Glueon:
если secure_link или аддон expire_link того же nginx вам не очень.

мне пока сложно сказать что лучше, присяду вечерком, нужно будет покалдовать с nginx-ом ))

---------- Добавлено 30.07.2013 в 20:18 ----------

poiuty, спасибо, покурю ))

iamsens
На сайте с 26.08.2009
Offline
115
#7
musitann:
Проблема известна давно, но проявляется очень редко. По крайней мере письма от пользователей приходят раз в полгода с жалобой на то, что фотки не открываются.

Сделал приватное отображение фотографий. По прямой ссылке они не доступны, ссылка через Rewrite режется на параметры и передаётся в скрипт, который и показывает или не показывает фото в зависимости от настроек приватности.



header($content_type); // например Content-type: image/jpeg
$img = file_get_contents( $dir.'/'.$photo );

touch( $dir.'/'.$photo );
echo $img;


Выглядит так, симптомы:
- открывается только верхняя часть картинки либо оно не открывается вообще - серый прямоугольник под размеры фото
- статика, по прямой ссылке открывается отлично

Я перепробовал много разных вариантов, но с "проблемным" пользователем ничего решить не удавалось. Воссоздать ошибку не получается, у меня и у остальных 100.000 пользователей работает как часы :((

От чего это происходит?

с высокой долей вероятности, можно сказать что проблема отображения картинки в скрипте)

M
На сайте с 02.01.2013
Offline
38
#8
iamsens:
с высокой долей вероятности, можно сказать что проблема отображения картинки в скрипте)

конкретное замечание в студию. а я повторю, что с проблемным "пациентом" было испробовано множество вариантов скрипта, и ничего не помогло. ваше замечание конкретно в чём?

iamsens
На сайте с 26.08.2009
Offline
115
#9
musitann:
конкретное замечание в студию. а я повторю, что с проблемным "пациентом" было испробовано множество вариантов скрипта, и ничего не помогло. ваше замечание конкретно в чём?

Это всё гадание на кофейной гуще и я могу только предполагать, симптомы похожи на проблемы в логике скрипта, который пытается показать картинку, которая еще не доконца записана на диск

Glueon
На сайте с 26.07.2013
Offline
172
#10
iamsens:
Это всё гадание на кофейной гуще и я могу только предполагать, симптомы похожи на проблемы в логике скрипта, который пытается показать картинку, которая еще не доконца записана на диск

Вряд ли ... Картинка загружается в tmp, потом перемещается в целевую директорию с помощью mv. Поэтому "не до конца загруженной картинки" быть скорее всего не может в принципе.

Но согласен. Тут явно не без кофейной гущи.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий