Tortway
@Tortway

Как загрузить файл на сервер не используя form хелперы?

Использую ruby-hyperloop, из-за которого клиентский код пишется в файлах .rb, поэтому форма для загрузки файлов на сервер должна быть выполнена без хелперов, которые доступны только для Action View.

Делаю так (средствами ruby-hyperloop)
FORM(action: '/library', method: 'post') do
  INPUT(name: 'book_file', type: 'file')
  BUTTON(type: 'submit') { 'Upload' }
end

В итоге форма выглядит так:
<form action="/library" method="post">
  <input name="book_file" type="file" />
  <button type="submit">Upload</button>
</form>

Встречаю сервером так:
def create
    book_file = params[:book_file].inspect
    puts '------------'
    puts book_file
    puts '------------'
    ...
  end

Но передаётся только имя файла:

yrs7Sh3.png

А я ожидал что будет объект со всеми данными файла, что в итоге позволит мне загрузить этот файл на сервер.

Почему так происходит? Как сделать upload правильно не используя хелперы?
  • Вопрос задан
  • 52 просмотра
Решения вопроса 1
HighQuality
@HighQuality
☁ Ниндзя девелопер
Дело не в хелперах, а в самой форме. Ей же надо указать enctype="multipart/form-data"

Подробнее про атрибут enctype читайте на htmlbook
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы