Uploadify 3.1 + Carrierwave + Rails 3.2.3

Что-то давненько я ничего не писал (-:

Сразу скажу, что полностью всё подробно описывать не буду: всё можете сами посмотреть в исходниках на Github-е.  В данной статье я просто опишу некоторые моменты, которые были выявлены в процессе попыток заставить это всё работать друг с другом.

Во-первых, что касается Uploadify 3.1

  1. В новых версиях нет swfobject.js. Поэтому не стоит смотреть на реализацию на более ранних версиях — не будет работать.
  2. Файл uploadify.swf я разместил в /vendor/assets/javascript/ . Подключается это удовольствие следующим образом в настройках Uploadify: swf : ‘<%= asset_path(«uploadify.swf») %>’,
  3. Ещё я изменил несколько функцию onSelect  самого файла jquery.uploadify-3.1.js, т.к. там по умолчанию обрезаются имена файлов, которые свыше 25 символов и заменяются на «…». Мне это как-то не понравилось: плохо работала подгрузка ajax-ом изображений после их отправки на сервер. Поэтому я увеличил длину имени файла до 100 символов. Кому надо, может ещё увеличить.
Вроде бы всё, что касается непосредственно Uploadify.
Перейдём к Carrierwave. Тут ничего особенного, всё стандартно:
  1. У Вас должен быть установлен RMagick
  2. Чтобы Carrierwave корректно обрабатывал русские символы, а так другие служебные символу, например, пробел или двоеточие, необходимо в файл аплоадера добавить следующую строку: CarrierWave::SanitizedFile.sanitize_regexp = /[^a-zA-Zа-яА-ЯёЁ0-9\.\_\-\+\s\:]/
  3. Все загружаемые изображения обрезаются до размера 1024х768px, а превьюшка делается размером 100х100рх.

Ну и не много о рельсах. Тут как бы много нечего рассказывать. Единственное на что хочу обратить Ваше внимание — это на приватную функцию coerce в контроллере. Она осуществляет разбор параметров, которые передаёт Uploadify контроллеру перед добавлением картинки.

Ну вот, в общем-то, и всё.

Всем удачи (-:

Недавние записи

3 комментария to “Uploadify 3.1 + Carrierwave + Rails 3.2.3”

  1. lukmus Says:

    Загрузка через uploadify необычайно тормозит на рабочем сервере (Nginx+Passenger+Rails 3.1.1). Загрузка одной картинки может длиться минуты, после чего частенько вылетает ошибка мол, неуспешная загрузка. CarrierWave делает 3 вида картинки, но сервер вроде нормальный (1000Mhz).
    Вы знаете какие-нибудь способы ускорить обработку картинки?
    И как у вас проходит загрузка (быстро, часты ли ошибки итд)?

  2. none Says:

    Думаю, что-то с настройками сервера…. Можете сами проверить, как оно работает: http://vivid-robot-2778.herokuapp.com/

  3. sdfsdf Says:

    Спасибо тебе, добрый ты человек!

Оставить комментарий