无法使用 Ruby 的框架 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>:
顺便说一下,我正在Heroku身上试这个。我不知道出了什么问题。除了我,很多人似乎都能适应。

你应该使用:

file = params[:file][:tempfile]

,我建议检索文件名

name = params[:file][:filename]

相关内容

  • 没有找到相关文章

最新更新