在RoR中PHP的tmp_name等价物

时间:2009-11-24 18:01:12

标签: ruby-on-rails

在PHP中上传文件会生成地图。其中一个键tmp_name允许用户操作文件而无需移动它。我想对Ruby on Rails做同样的事情。

我有一个带.csv文件的表单。有了这个,我正在尝试填充数据库。但是只使用表单中的文件字段,我得到一种ActionController :: UploadedFile,它不允许我做CSV.open或迭代它。那么如何在不将其移入我的项目的情况下访问上传的文件然后迭代它呢?感谢。

1 个答案:

答案 0 :(得分:1)

方法ActionController::UploadedFile#path应返回服务器上tmp文件的路径。您还有一个方便的#read方法,可以返回文件的内容。

file_param = params[:upload][:file]
filename = file_param.original_filename
filename = file_param.path
filedata = file_param.read

CSV.open(file_param.path, "r") { ... }