2013-09-21 24 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 

其實你必須檢查文件是否試圖存儲它之前上傳,請檢查您是否正在處理文件,就像在第一個例子中是否存在文件。但是爲了簡單起見,它被忽略了。

相關問題