如何在rails中上传文件

我的应用程序是一个调查建设者…它需要用户上传cvs文件,我使用rails 3.1.3。,ruby 1.9.2 ande设计1.5.3进行身份validation,但我试过: http : //www.jedi.be / blog / 2009/04/10 / rails-and-large-large-file-uploads-looking-the-alternatives /但不适合我…任何人都可以告诉我如何(一步一步。 ..yes我是一个begginer)在rails 3.1.3中上传cvs文件??? 提前致谢。

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

我建议你看看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文件变得轻而易举。

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

否则,如果您不需要完整的gem,这里有一个更简单的方法: Rails 3 – 将文件上传到公共目录

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

Interesting Posts