2013-09-21 19 views

回答

2

例如像这样

表单来上传文件:地方

<%= 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 } 

然后用小豆进程的文件时,它是必要的,然后删除:

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 

其实你必须检查文件是否试图存储它之前上传,请检查您是否正在处理文件,就像在第一个例子中是否存在文件。但是为了简单起见,它被忽略了。

相关问题