在我的應用程序中,用戶必須上傳一個文本文檔,然後通過接收控制器操作解析其內容。我已經成功上傳了文檔,但我無法閱讀其內容。在Rails中上傳和解析文本文檔
在這個問題上有幾個線程。我已經嘗試了或多或少的建議在這些線程上,我仍然無法解決問題。
這裏是我的代碼:
file_data = params[:file]
contents = ""
if file_data.respond_to?(:read)
contents = file_data.read
else
if file_data.respond_to?(:path)
File.open(file_data, 'r').each_line do |line|
elts = line.split
#
#
end
end
end
因此,這裏是我的問題: '?respond_to代碼' file_data不無論是:read還是:path。根據該主題的其他一些線索,如果上傳的文件小於特定大小,則將其解釋爲字符串,並且將響應:讀取。否則,它應該回應:路徑。但在我的代碼中,它既不響應也不響應。
如果我嘗試取出if語句並立即嘗試File.open(file_data,'r'),我得到一個錯誤,指出找不到該文件。
有人可以幫我找出有什麼問題嗎?
PS,我真的很抱歉,這是一個多餘的問題,但我發現其他線程無益。
嗯,我想上傳文件將其存儲到服務器訪問的位置?我猜不會。我將如何保存文件? – user1639833
確定它保存在臨時目錄中。我其實從來沒有這樣做過:p這裏是指南http://guides.rubyonrails.org/form_helpers.html#uploading-files –
我重複rubyonrails指南的邏輯,我遇到了問題。 \t uploaded_io = params [:file] \t File.open(Rails.root.join('public','data',params [:file]),'w')do | file | \t \t file.write(uploaded_io.read) \t年底 我得到一個錯誤,指出存在的字符串沒有讀法。它在upload_io上調用'read',這是上傳文件的名稱。 – user1639833