我想上传一个文件在rails(使用回形针),我想处理一些文件数据,然后让回形针将它发送到s3存储。在我的控制,我只是抓住了文件参数(这确实给我一个文件),然后我尝试将线读取到一个数组用回形针上传文件之前读取文件行
csv_file = params[:activity][:data]
array = IO.readlines(csv_file.path)
的问题是,我只得到的最后一行文件。我尝试使用.rewind,但仍然只是最后一行。
我想上传一个文件在rails(使用回形针),我想处理一些文件数据,然后让回形针将它发送到s3存储。在我的控制,我只是抓住了文件参数(这确实给我一个文件),然后我尝试将线读取到一个数组用回形针上传文件之前读取文件行
csv_file = params[:activity][:data]
array = IO.readlines(csv_file.path)
的问题是,我只得到的最后一行文件。我尝试使用.rewind,但仍然只是最后一行。
我不喜欢readlines,我总是使用正则表达式。尝试这个。行 完 - \ n
方便的块结构,以确保文件句柄关闭:
File.open(csv_file.path) do |f|
a = f.readlines
process a...
end
读取整个文件到内存中可能不是取决于文件的大小是一个好主意。
谢谢,但同样的问题仍然存在 - a [0]给了我文件的最后一行,而[1]什么都不返回。我猜测它与回形针有关:/ – 2011-06-13 16:17:16