【问题标题】:how to upload files in rails如何在rails中上传文件
【发布时间】:2012-03-05 14:58:12
【问题描述】:

我的应用程序是一个调查构建器...它需要用户上传 cvs 文件,我正在使用 rails 3.1.3.、ruby 1.9.2 并设计 1.5.3 进行身份验证,但我尝试了:http://www.jedi.be/blog/2009/04/10/rails-and-large-large-file-uploads-looking-at-the-alternatives/ 但不要t 对我有用...谁能告诉我如何(一步一步...是的,我是初学者)在 rails 3.1.3 中上传 cvs 文件???提前致谢。

【问题讨论】:

  • 你说的是 cvs 还是 csv?

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


【解决方案1】:

如果您的目标是将文件上传到您不应该使用 Carrierwave 或 Paperclip 的目录。这些宝石对图像处理和额外选项有很多支持。

我建议您更具体地查看 Ruby 文件类和 open 方法。 http://www.ruby-doc.org/core-1.9.3/File.html#method-c-open

类似下面的东西应该可以解决问题:

# "public/csv" is the directory you want to save the files in
# upload["datafile"] is the data populated by the file input tag in your html form 
path = File.join("public/csv", upload["datafile"].original_filename)
File.open(path, "wb") { |f| f.write(upload["datafile"].read) }

请记住,您的公共目录可供全世界访问。如果您需要将这些文件保存在更私密的位置,请确保该目录只能由您的应用读写。

此外,如果您使用的是 CSV 文件,请务必通读 Ruby CSV 类:http://ruby-doc.org/stdlib-1.9.2/libdoc/csv/rdoc/CSV.html。它使处理 CSV 文件变得轻而易举。

【讨论】:

    【解决方案2】:

    Carrierwave (https://github.com/jnicklas/carrierwave) 几乎是文件上传的标准。

    否则,如果您不需要成熟的 gem,这里有一个更简单的方法: Rails 3 - upload files to public directory

    【讨论】:

      【解决方案3】:

      我在github上找到了一个用javascript的优秀项目,在rails 3.2.1中,你可以上传文件并将其保存在数据库中,是用sqlite完成的,但是很容易将其更改为mysql 这里是链接: upload files in rails 3.2.1, javascript and sqlite

      【讨论】:

        猜你喜欢
        • 2011-04-25
        • 2010-11-13
        • 2012-07-05
        • 1970-01-01
        • 2010-10-19
        • 2019-03-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多