Приложение «Раздача аватарок». Изнанка.

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

Итак, приложение «Раздача аватарок» суть фильтр. В базу заносится ссылка на картинку и... В принципе, это самое трудоемкое, что делает приложение. Конечно, перед занесением в базу картинки скрипт ее проверяет на адекватность (размер - не более 1Мб, тип - GIF или JPEG). Остальное делает скрипт, выдающий пользователю картинку.

Ссылка на картинку-аватарку в приложении выглядит так:
http://vexer.ru/liru/liruavs/ссылка_на_картинку
Где ссылка_на_картинку - ссылка без «httр://»
Таким образом выдающему скрипту передается ссылка на картинку. Скрипт снова проверяет картинку на адекватность, при необходимости пропорционально уменьшает до требуемых 150x150 пикселей (при уменьшении, правда, большие анимированные картинки становятся статичными) и выдает пользователю. В случае неадекватной картинки ссылка на нее стирается из базы, а пользователю показывается надпись «аватарка не найдена». Собственно, это все.

Непосредственно об адекватности картинки скрипт судит по передаваемым метаданным:

PHP:

$fi 
fopen($file_name,"r");
$inf stream_get_meta_data($fi);
fclose($fi);

$size_file=0;
$type_file="";

foreach(
$inf["wrapper_data"] as $vv) {
  if (
stristr($vv,"content-length")) {
    
$v explode(":",$vv);
    
$size_file=trim($vv[1]);
  }
  if (
stristr($vv,"content-type")) {
    
$v explode(":",$vv);
    
$type_file=strtolower(trim($vv[1]));
  }
}



Собственно непосредственно на сервере, получается, я ничего не храню. Вот такой финт ушами.
Симпапулькин (06 авг 2008г, 18:41) #
Стоит попробовать.
Nks (08 авг 2008г, 08:07) Комментарий к Приложение «Раздача аватарок». Изнанка. #
/*краду в базу знаний*/

Программистам о программистах на Progger.Ru
V.exeR (08 авг 2008г, 08:10) #
Накукрыскин: на здоровье. =]

Trash80 - Say Goodbye
-hunter- (15 авг 2008г, 11:27) #
Хм интересно! То что на сервере ничего не хранится это огромный плюс. А если картинка большая, выдающий скрипт ее "на лету" уменьшает?
V.exeR (15 авг 2008г, 13:58) #
-hunter-: именно, я же это упоминаю.
Asunder (03 сен 2008г, 12:55) #
V_exeR, интересно на Ли.ру такой же фильтр?
V.exeR (05 сен 2008г, 22:18) #
Asunder: фильтр - это нечто, пропускающее через себя материал. На ЛИ.ру при загрузке аватар они сохраняются на сервер. То есть хоть они и тоже движком ЛИ.ру уменьшаются и все такое, но это не фильтр.
Asunder (06 сен 2008г, 08:37) #
V_exeR, под словом "фильтр" я подразумевал скрипт проверки
проверка по типу файла: gif или jpeg, по весу, по габаритам...

p.s. не знал, что ли.ру теперь сама аватары уменьшает
раньше там стояло ограничение по габаритам
V.exeR (07 сен 2008г, 08:51) #
Asunder: это не фильтр, это так и называется - проверка.

Насчет ЛИ.ру - я могу ошибаться, давно не загружал никаких аватар, у меня одна, с самого начала.