代码之家  ›  专栏  ›  技术社区  ›  Marco

Rails中的文件上传-数据是一个对象,我如何在视图中返回它?

  •  1
  • Marco  · 技术社区  · 16 年前

    在我的Rails项目中进行上传时,数据库会存储

    --- !ruby/object:文件 content_type:应用程序/八位字节流 原始路径:my.numbers

    如何让它只返回我视图中的.numbers?

    ps.我不想使用attachment_fu或任何其他插件。

    2 回复  |  直到 16 年前
        1
  •  1
  •   tadman    16 年前

    文件上传实际上是由您的控制器作为file对象而不是数据接收的,因此您有责任读取它。通常上传的文件保存在临时目录中,其打开的文件句柄存在于参数中。

    def create
      # Read in data from file into parameter before creating anything
      if (params[:model] and params[:model][:file])
        params[:model][:file] = params[:model][:file].read
      end
    
      @model = MyModel.create(params[:model])
    end
    

    您可能需要确保数据库中的列可以存储二进制数据。在MySQL迁移中,这是:binary列类型。

        2
  •  0
  •   cgr    16 年前

    您可以使用助手original_filename访问上传文件的名称。 所以params[:model][:file].orginal_filename