Прогрузка файлов через 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.

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

Popular right now

Python для анализа данных
March 3, 202124,900 ₽SkillFactory
Профессия Product Manager
March 3, 2021108,500 ₽Нетология
Профессия Data Scientist
March 3, 2021162,000 ₽SkillFactory
Специализация Data Science
March 3, 2021114,000 ₽SkillFactory

Top of the last 24 hours