Если вас интересуют только JPEG, вы можете прочитать данные EXIF примерно так: http://www.nihilogic.dk/labs/exifjquery/ Вы можете вызвать это с помощью одного из обратных вызовов загрузки (например, onselect): http://www.uploadify.com/documentation/events/onselect/
В противном случае, если вы не можете прочитать EXIF, вам нужно загрузить его, обработать, а если его больше, чем нужно, просто выбросьте его и отправьте обратно ошибку.
Из readme скрепки (https://github.com/thoughtbot/paperclip/blob/master/README.md):
До и после постобработки
шаг, скрепка перезванивает
модель с несколькими обратными вызовами, позволяющая
модель, чтобы изменить или отменить
этап обработки. Обратные вызовы
before_post_process и
after_post_process
В любом случае, вы можете использовать скрепку для хранения размеров: https://github.com/thoughtbot/paperclip/blob/master/lib/paperclip/geometry.rb#L14
dimensions = Paperclip::Geometry.from_file(original_file)
Paperclip также изменит для вас размер, если файл слишком большой, поэтому не имеет значения, будут ли ваши пользователи загружать большой файл:
has_attached_file :avatar, :styles => { :original => ["19200x19200>", :jpg] }