params [:file] .path没有方法sinatra

时间:2015-04-22 21:47:27

标签: ruby sinatra

你好我用post文件向我的服务器发送一个带文件的请求 该文件到达但我想获得我打开它的路径,但当我得到文件

params[:file].path

它说哈希没有方法 所以现在我知道这是一个哈希而不是一个文件,有没有办法将这个哈希转换为我需要的文件?

这是我的请求的外观:

{
    "utf8"=>"✓",
    "authenticity_token"=>"vsp2/5YCM9OBFjXASnpnXNmi4oYVlbAEeUhHQzpRd4w=",
    `"file"=>`{
        : filename=>"mass_email.csv",
        : type=>"text/csv",
        : name=>"file",
        : tempfile=>#<File: /tmp/RackMultipart20150422-8224-1vm8siy.csv>,
        : head=>"Content-Disposition: form-data; name=\"file\"; filename=\"mass_email.csv\"\r\nContent-Type: text/csv\r\n"
    },
    "commit"=>"Send Mass Email",
    "from"=>{
        "0"=>"\"balblabla\" <email@ik.com>"
    },
    "subject"=>{
        "0"=>"asdasda"
    },
    "template"=>{
        "0"=>"sdasdasdaojoasdijoisjdcxvb"
    }
}

如果你知道我怎么能改变这个请求到达的方式还有更多的\\到处都会非常有用

1 个答案:

答案 0 :(得分:1)

要访问文件名,请使用

filename = params[:file][:filename]

访问文件使用

file = params[:file][:tempfile]