Html rails表单帮助器方法:文件\字段?

Html rails表单帮助器方法:文件\字段?,html,ruby,ruby-on-rails-3,Html,Ruby,Ruby On Rails 3,您可以看到“文件”字段提供了一个窗口,允许用户选择某个文件并上载到服务器端。但我想要的只是文件名。我如何才能只获取文件名,而不需要文件本身。有什么建议吗?不确定您为什么需要这样做,但您可以尝试这样做 以你的形式 “原始文件名”将获取正在上载的文件的名称,然后您可以将其存储到数据库中。希望这有帮助您需要有两个字段: 用于存储文件名的隐藏字段 文件输入以选择文件 例: 由于您只需要文件名,而不需要路径或实际的文件内容,您可以要求用户在文本字段中键入文件名。实际上,这是为我准备的,因为我不想键入文

您可以看到“文件”字段提供了一个窗口,允许用户选择某个文件并上载到服务器端。但我想要的只是文件名。我如何才能只获取文件名,而不需要文件本身。有什么建议吗?

不确定您为什么需要这样做,但您可以尝试这样做

以你的形式


“原始文件名”将获取正在上载的文件的名称,然后您可以将其存储到数据库中。希望这有帮助

您需要有两个字段:

  • 用于存储文件名的隐藏字段
  • 文件输入以选择文件
例:


由于您只需要文件名,而不需要路径或实际的文件内容,您可以要求用户在文本字段中键入文件名。实际上,这是为我准备的,因为我不想键入文件名。hahathx,但我有一个问题,如果我这样做,文件本身是否会上载到服务器端?因为我只需要文件名。@castiel否,文件将不会上载,因为您只请求原始的\u文件名。但也可以通过fl00r检查下面的答案,这更好,但两者都应该有效
<%= file_field :uploadfile %>
def upload
    params[:uploadfile].original_filename
    .... process the rest of this method ....
end
<%= file_field_tag :our_file %>
<%= f.hidden :filename, :id => "hidden_filename" %>
$(document).ready(function(){
  $('input[type=file]').change(function(e){
    filename = $(this).val();
    $("#hidden_filename").attr("value", filename);
    # To reset file field if you don't want to uppload a file
    $(this).attr("value", "");
  });
})