![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Xplod |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 27.6.2007 Репутация: 1 Всего: 1 |
Здравствуйте!
Встала дилема, на крупном проекте при загрузке изображения должны нарезаться не сколько видов тумб, есть вероятность что в последствии нужны будут еще размеры, что ставит в тупик саму идею ресайза на месте. Знаю многие используют более удобный вариант, загружают оригинал и при генерации контента в теге img делаю примерно так:
При вызове метода сначала проверяем на наличие уже сгенеренного изображения file_exists(), вполне рабочий вариант на первый взгляд. Но интересует другой вопрос, как сильно на производительность скажется постоянная проверка файла? Возможно есть более интересные решения и я просто об этом не знаю. Спасибо! |
|||
|
||||
s0lman |
|
|||
![]() Белый и лохматый ![]() ![]() Профиль Группа: Участник Сообщений: 637 Регистрация: 1.11.2007 Где: Ukraine Репутация: 9 Всего: 29 |
Если нужны будут тамбы другого размера - что мешает потом их добавить?
Ресайз картинки на лету... пожалейте сервер ![]() -------------------- Когда я уже выучусь на волшебника? :( |
|||
|
||||
Xplod |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 27.6.2007 Репутация: 1 Всего: 1 |
ну в самой идее резать на лету как раз ничего криминального, мы же не при каждом обращении будем резать, а только один раз, а остальные просто будем проверять нарезно или нет, смущает другое, это проверка file_exists(). тоесть постоянное обращение к файловой системе, что само по сути скорей всего не желательно.
s0lman: а насчет потом добавить, это надо запускать скрипт нарезки. ну что собственно тоже усложняет. в ручную пересохранять при большом объеме документов, не приемлимо. |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Xplod, а почему бы не сделать нормальное имя файла.
К примеру /img/picture_800x600.jpg /img/picture_100x80.jpg если файла нет - htaccess переводит нас на php-ресайзилку, которая берет оригинальный файл picture.jpg, режет его на нужный размер, сохраняет под нужным именем и выдает наружу. Следующее обращение пойдет уже по существующему файлу, в обход php. пара строк htaccess всего и делов... Добавлено через 59 секунд Я как-то на таких принципах галерею мастерил ![]() -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
Xplod |
|
||||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 27.6.2007 Репутация: 1 Всего: 1 |
![]() Согласен, НО отсюда вытекают и другие проблемы, например потенциальная уязвимость, поясню, если мы пропишем в htaccess обрабатывать все изображения без указания точного размера, как например:
то любой злоумышленик может сделать примерно так:
ну думаю вы поняли что произойдет...))) Остается прописывать каждый размер, в htaccess, что тоже не лучший вариант. |
||||
|
|||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Можно ограничиться стандартными размерами. К примеру, по высоте достаточно 800,600, 120,100 в зависимости от горизонтального или вертикального кадра. По ширине - еще + 1000. Так что злоумышленник не сильно надосится таким образом... -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
$дмитрий |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 19.6.2004 Репутация: 17 Всего: 45 |
Правильнее всего конечно ресайзить картинку в момент добавлении/изменении, но не всегда это возможно(в силу текущей архитектуры или других причин), а иногда просто не удобно. В таких случаях результат КЭШИРУЮТ
![]() И еще момент: если картинок много не нужно все превьюхи пихать в одну папку, это не хорошо |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Юзер по ftp залил кучку картинок. В какой момент их нужно кэшировать, если неясно, покажутся они когда-нибудь или нет? ![]() -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
$дмитрий |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 19.6.2004 Репутация: 17 Всего: 45 |
При чем тут способ доставки файла, если ты не можешь контролировать этот процесс - файл просто не отобразиться ![]() Вариант с htaccess мне не нравится тем, что нельзя будет распределить нагрузку, в случаи если на странице будет много файлов |
|||
|
||||
ksnk |
|
||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Есть еще и активные шаблоны, которые могут просканировать каталог и набросать галерею.
При чем тут распределение нагрузки? htaccess срабатывает ровно один раз в жизни для каждой миниатюры. Дальнейшее распределение нагрузки головная боль web сервера, а не web программиста ![]() -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
||||
|
|||||
$дмитрий |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 19.6.2004 Репутация: 17 Всего: 45 |
Вот, значит есть некий обработчик, который может сразу(либо при заходе на страницу) проресайзить картинку + переиндексировать кеш Твой вариант с htaccess накроется медным тазом если размер картинки заранее не известен. Например при оформлении иллюстраций к статьям/новостям ![]() |
|||
|
||||
Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
В новостном портале города пока что по скромным подсчет 1к польз. в стуки делал программист занятым разделом новости в админке он сделал чтобы фото загружалось мултиаплодером выбирались какие нужны ресайзились сразу на 5 форматов 800 600 380 280 180 в зависимости от размеров фото и заданным параметрам.
фото при подаче к анонсу пихается в background и позиционируется В другом двиге над котором я работаю и бывает еще 1 программист я сделал редактор фоток обрезка загрузка мулти загрузка написал гребаныq плагин для tynimce для закачки фоток и работы с картинками а также файловый менаджер чтобы всеэто выбирать могли и вставлять в контент к сожалению чтобы это работало как отдельный плагин нужно разобрать движок и написать бекенд независимым от ядра системы. Это сообщение отредактировал(а) Sanchezzz - 7.1.2012, 12:53 -------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
Nigel |
|
|||
познаю мир ![]() ![]() Профиль Группа: Участник Сообщений: 515 Регистрация: 20.11.2007 Репутация: 7 Всего: 19 |
Sanchezzz, можешь демку выложить? Ну или скриншоты, чтобы понять, как это выглядит/работает
|
|||
|
||||
Xplod |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 27.6.2007 Репутация: 1 Всего: 1 |
Sanchezzz надо изображения в прикреплять в документу, а не в тело... но это ладно я думаю надо просто по аналогии друпала сделать, написать модуль для заведения размеров изображения, а потом их прикреплять к нужным модулям, новости..статьи и так далее, при сохранении размеров просто запускать перегенерацию...
|
|||
|
||||
Absinthe |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 4.5.2011 Репутация: 5 Всего: 11 |
Картинки ресайзить при аплоаде.
Потом при необходимости добавления нового размера ресайзить с консоли. С видео ситуация другая. Видео обрабатывать отдельным демоном. |
|||
|
||||
Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
демку ксожелению нету показать нету лишнего субдомина, чтобы дать посмотреть, но скрины можно показать как я сделал в админке в корпоративной cms
1 ![]() 2 ![]() 3 ![]() 4 ![]() в портале города там совсем другой движок более навороченный показывать его не могу коммерческая тайна, прошу понять и простить Это сообщение отредактировал(а) Sanchezzz - 9.1.2012, 10:40 -------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
на скрине:
1 видно как все редактируется и добавляется . Элемент может быть разделом и элементом одновременно ) 2 это структура контейнера дерева для одного блока где хранятся элементы. 3 это простая работа с картинками редактирование 4 загрузка фоток в элемент 1 кадр обычная загрузка 2 кадр мултиуплодер с возможностью добавлять wotermark. + контролер UI Jquery чтобы легче всем было управлять удалить картинку из временной папки , поставить водиной знак итд. Для мултиуплодера использовался jquery плагин qqFileUploader Для для кропа использовался imgareaselect -------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Sanchezzz, Раз все картинки грузятся админкой и никак иначе, то и ресайзить их надо в ней-же.
Вообще говоря, не очень важно, какого размера будут картинки на страничке. Нужно выделить стандартные , например 800x600, 200x120, 100x80 и ресайзить всегда до них. Если пользователь заряжает длину картинки в 400px - можно подсунуть ему 800x600 и указать длину в теге img. Так как юзер в пароксизме редактирования макета может менять размер картинок в элементе неограниченное количество раз, каждый раз рассматривая продукт, ресайзить каждый раз может оказаться вредно для здоровья сервера ![]() -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
ksnk так и сделано ресайзится сразу админкой вовремя закачки значения для ресайза задаются самим
мини детально и сохраняется исходное. Больше 25-30 картинок я не замечал чтобы создавали для 1 элемента ) -------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
$дмитрий |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 19.6.2004 Репутация: 17 Всего: 45 |
При загрузке главное не забывать ресайзить оригинальную картинку до предельно-допустимых размеров, а то загружают по 3-4 метра
Добавлено через 2 минуты и 58 секунд Да и вообще картинку лучше предварительно сжимать на клиенте ![]() |
|||
|
||||
Absinthe |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 4.5.2011 Репутация: 5 Всего: 11 |
|
|||
|
||||
Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
$дмитрий не поверите но такие дебилы встречаются грузят фото по 10000px картику мы картинку пытаемся загрузить а она не сжимается после просмотра какую вы картинку хотите загрузить, я понял это плокатище )
а вообще нужно ужесточить меры по загрузке картинок не более 800кб и 1024px 1024px -------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
Nigel |
|
|||
познаю мир ![]() ![]() Профиль Группа: Участник Сообщений: 515 Регистрация: 20.11.2007 Репутация: 7 Всего: 19 |
Sanchezzz, спасибо, примерно так и представлял ;)
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |