Pull to refresh

Прогрузка файлов через Ajax

Reading time 1 min
Views 1.3K
Довольно интересный метод прогрузки файла, хотя думаю многие его знают.


Для начала создадим форму и скрытый iframe в который собственно и будет отправлятся сама форма (на это указывает атрибут target).
<br>
<br>
  /><br>
  /><br>
<br>

<br>

Когда будет нажата кнопка Submit, форма отправится в скрытый iframe, и будет вызван метод контроллера «upload_action». Теперь необходимо получить данные в контексте всей страницы (родительского окна для фрейма). Для этого используется очень интресное решение. Опишем контроллер для получения и обработки данных из этой формы:
<br>
class UploadController < ActionController::Base<br>
def upload_action<br>
  responds_to_parent do<br>

    File.open("public/files/upl_file",'wb') do |file| <br>
     file.write params[:upl_data].read <br>
    end <br>
    render :update do |page|<br>
     page.replace_html 'upload_frm', :partial => 'upload'<br>

    end<br>
  end<br>
end <br>
end<br>

Обращение к iframe реализовано плагином respond_to_parent. Для генерации такой формы с iframe можно использовать плагин remote_upload.

Решение на мой взгляд очень даже симпатичное.
Tags:
Hubs:
+10
Comments 31
Comments Comments 31

Articles