Надо загрузить только фотографии на сервер формата JPG, GIF или PNG размером меньше 3 метров.

Поставь модуль Image::Magick;

вот с его помощью можно делать с графическими файлами всё что угодно.

в том числе проверку на "графичность" файла.