Не могу прочитать загруженный файл с помощью Ruby's Framework Padrino

У меня есть эта форма для загрузки файлов:

-# coding: utf-8
- content_for(:body_classes, "body3")
.content
  - form_tag url(:images, :create), :method => :post, :multipart => true do
    = file_field_tag :file
    = submit_tag "Upload"

И этот контроллер справится с этим:

Fbapp.controllers :images do

  get :new do
    render 'images/new'
  end

  post :create do
    require 'net/ftp'
    file = params[:file]
    ftp = Net::FTP.new('xxx.xxx.xxx.xxx')
    ftp.passive = true
    ftp.login('user','pass')
    ftp.storbinary("STOR " + "original_filename", StringIO.new(file.read), Net::FTP::DEFAULT_BLOCKSIZE)
    ftp.quit
  end
end

И каждый раз, когда я пытаюсь загрузить файл, я получаю "Внутренняя ошибка сервера". И мой журнал имеет это:

NoMethodError - undefined method `read' for #<Hash:0x00000003697780>:

Кстати, я пробую это на Хероку. Я не могу понять, в чем проблема... Кажется, это работает для многих людей, кроме меня.

1 ответ

Решение

Вы должны использовать:

file = params[:file][:tempfile]

и я предлагаю восстановить имя файла

name = params[:file][:filename]
Другие вопросы по тегам