Открыть список
Как стать автором
Обновить

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

Ruby
Довольно интересный метод прогрузки файла, хотя думаю многие его знают.


Для начала создадим форму и скрытый 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.

Решение на мой взгляд очень даже симпатичное.
Теги:ruby on railsrubyajax
Хабы: Ruby
Всего голосов 20: ↑15 и ↓5 +10
Просмотры1.1K

Похожие публикации

Rails-программист
31 мая 202156 250 ₽Хекслет
Профессия Project Manager
13 мая 2021112 000 ₽Нетология
SMM-менеджер
13 мая 2021Цена по запросуGeekBrains
Python для веб-разработки
14 мая 202159 400 ₽SkillFactory

Лучшие публикации за сутки