我想在浏览文件时将文件临时保存在公用文件夹中。
那是在浏览文件时首先保存在公用文件夹中,然后我将使用 阅读此文件roo gem
,所以请帮助我如何进行。
我想在浏览文件时将文件临时保存在公用文件夹中。
那是在浏览文件时首先保存在公用文件夹中,然后我将使用 阅读此文件roo gem
,所以请帮助我如何进行。
例如像这样
上传文件的表格:
<%= form_tag some_path, :multipart => true do %>
<%= file_field_tag :my_file %>
<%= submit_tag 'Upload' %>
<% end %>
在控制器存储上传的文件某处:
file = params[:my_file].read
filename = params[:my_file].original_filename
File.open(File.join(Rails.root, 'path', 'to', 'dir', filename), 'wb') { |f| f.write file }
然后在必要时使用 Roo 处理文件,然后删除:
path = File.join Rails.root, 'path', 'to', 'dir', filename
rows = Roo::Spreadsheet.open path
for i in 0..rows.last_row do
...
end
File.delete path
您必须将文件名存储在某处。或者处理这个目录下的所有文件。例如所有 xlsx 文件:
Dir.glob(File.join Rails.root, 'path', 'to', 'dir', '*.xlsx').each do |path|
rows = Roo::Spreadsheet.open path
...
end
实际上,您必须在尝试存储文件之前检查文件是否已上传,如果您正在像第一个示例中那样处理文件,请检查文件是否存在。但是为了简单起见,跳过了它。