Ruby params[:file]。路径没有方法sinatra

Ruby params[:file]。路径没有方法sinatra,ruby,sinatra,Ruby,Sinatra,你好,我正在用post方法向我的服务器发送一个带文件的请求 文件到达,但我想获得路径,我命令打开它,但当我获得文件时 params[:file]。路径 它说散列没有方法 现在我知道这是一个散列而不是一个文件,有没有办法把这个散列转换成我需要的文件 以下是我的请求: { "utf8"=>"✓", "authenticity_token"=>"vsp2/5YCM9OBFjXASnpnXNmi4oYVlbAEeUhHQzpRd4w=", `"file"=>`{

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

params[:file]。路径

它说散列没有方法 现在我知道这是一个散列而不是一个文件,有没有办法把这个散列转换成我需要的文件

以下是我的请求:

{
    "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"
    }
}
{
“utf8”=>”✓",
“真实性令牌”=>“vsp2/5YCM9OBFJXASNPNXNMI4OYVLBAEEUHQZPRD4W=”,
`“文件”=>`{
:filename=>“mass_email.csv”,
:type=>“text/csv”,
:name=>“文件”,
:tempfile=>#,
:head=>“内容处理:表单数据;名称=\”文件名=\”mass\u email.csv\“\r\n内容类型:text/csv\r\n”
},
“提交”=>“发送大量电子邮件”,
“从”=>{
“0”=>“balblabla”
},
“主题”=>{
“0”=>“asdasda”
},
“模板”=>{
“0”=>“sdaojoasdijoisjdcxvb”
}
}

另外,如果您知道如何更改此请求到达的方式,并且在任何地方都有额外的\\everywhere,这将非常有助于访问文件名使用

filename = params[:file][:filename]
要访问文件,请使用

file = params[:file][:tempfile]