params[:file].path 没有方法 sinatra
params[:file].path has no method 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"
}
}
此外,如果您知道我如何更改此请求的到达方式,并在所有地方添加额外的 \\,这将非常有帮助
要访问文件名,请使用
filename = params[:file][:filename]
访问文件使用
file = params[:file][:tempfile]
你好,我使用 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"
}
}
此外,如果您知道我如何更改此请求的到达方式,并在所有地方添加额外的 \\,这将非常有帮助
要访问文件名,请使用
filename = params[:file][:filename]
访问文件使用
file = params[:file][:tempfile]