Использование Rails с Paperclip и SWFUpload - PullRequest
6 голосов
/ 23 мая 2009

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

<h1>Editing user</h1>

<% form_for :user, @user, :url => user_path(@user), :html => { :method => "put", :multipart => true } do |f| %>
  <%= f.error_messages %>

  <p>
    <%= f.label :first_name %><br />
    <%= f.text_field :first_name %>
  </p>
  <p>
    <%= f.label :last_name %><br />
    <%= f.text_field :last_name %>
  </p>
  <p>
    <%= f.label :file %><br />
    <%= f.file_field :file %>
  </p>

  <p>
    <%= f.label :photo %><br />
    <%= f.file_field :photo %>
  <p>
    <%= f.submit 'Update' %>
  </p>

<% end %>

<%= link_to 'Show', @user %> |
<%= link_to 'Back', users_path %>

Затем я хотел интегрировать SWFUpload в свое приложение. Я попытался следовать этому учебнику и запустить тестовый проект без какого-либо успеха: кнопка обзора не открывает диалоговое окно файла, и выдается сообщение об ошибке # 2176 о файле selectFiles ( ) метод.

Во-первых, проблема в Flash v.10, который не совместим со старой версией SWFUpload (2.1.0), включенной в проект: selectFiles () теперь устарела. Поэтому я попытался перейти на SWFUpload v. 2.2.0, в котором теперь используется настройка button_placeholder_id, но я не могу заставить работать какой-либо пример.

Так что я немного растерялся о том, как использовать инициализацию SWFUpload и о том, как использовать ее в своей форме, чтобы я мог загрузить и сохранить фотографию. Любая помощь?

Ответы [ 3 ]

1 голос
/ 24 октября 2009

Вот хорошая хорошая запись .

1 голос
/ 24 октября 2009

Для передачи идентификатора поля файла фотографии в SWFUpload идентификатор вашего поля будет user_photo (из ), поэтому инициализируйте swfupload с помощью

var swfupload = new SWFUpload({button_placeholder_id:'user_photo' ... });

, который заменит поле файла загрузчиком SWF.

Имейте в виду, что по умолчанию файл будет загружен как параметр 'Filedata'. Технически вы могли бы изменить это на «user [photo]», но, очевидно, это не работает в Linux, поэтому вам, возможно, придется немного поработать на стороне сервера, чтобы переместить это в нужное место.

1 голос
/ 21 октября 2009

Вы можете попробовать использовать плагин easy-swf-upload

Вам просто нужно вставить один помощник и, возможно, принять CSS

...