如何在rails控制器中获取上传文件的文件名

时间:2014-02-24 05:28:55

标签: ruby-on-rails ruby file-upload

<%= file_field 'upload' %>

在我的控制器中,如果我根据建议提供以下内容

filename=params[:upload]
@result=filename.original_filename

我到了。

undefined method `original_filename' for 
#<ActionController::Parameters:0x002b6c396e44b8> 

注意:我没有使用表格。 Rails版本是4.0.2

4 个答案:

答案 0 :(得分:3)

使用以下代码获取文件名:

params[:file].original_filename

答案 1 :(得分:2)

您是否阅读过如何upload files in Rails?您是否已将表单设置为multipart: trueparams中的内容是StringIOFile(取决于上传的大小)。在该对象上,您将拥有original_filename属性,该属性是上载文件的文件名。

编辑:我看到你说你没有使用表单提交......你采取了哪些替代步骤来完成这项工作?

答案 2 :(得分:0)

您是否添加了许可证:upload params

def some_params
   params.require(:something).permit(:upload)
end

[参考铁轨文件] http://api.rubyonrails.org/classes/ActionController/Parameters.html#method-i-permit

答案 3 :(得分:-1)

尝试:

params[:pictures][0]["picture_path"].original_filename.split(".").first