我使用paperclip
gem將excel文件上傳到我的應用程序。在上傳之前,我想查看header column names
的存在。所以,我需要使用其路徑打開文檔並閱讀標題內容。但由於我們是在導入過程之前完成的,我們應該從被訪問的路徑而不是從我們上傳回形針文件的路徑打開它。獲取要導入的文件的絕對路徑/位置+文件名 - Ruby/Rails
例如,
假設我是從'/home/user/rajesh/Test1.xlsx'
上傳文件和回形針將其上傳到'/home/user/rajesh/Project/public/system/000/000/001/Test1.xlsx'
。所以,我需要得到值'/home/user/rajesh/Test1.xlsx'
。
代碼:
if File.extname(importfile.file_file_name) == ".csv"
spreadsheet = Roo::Csv.new(importfile.file.path, nil, :ignore)
elsif File.extname(importfile.file_file_name) == ".xls"
spreadsheet = Roo::Excel.new(importfile.file.path, nil, :ignore)
elsif File.extname(importfile.file_file_name) == ".xlsx"
spreadsheet = Roo::Excelx.new(importfile.file.path, nil, :ignore)
else
raise "Unknown file type for '#{importfile.file_file_name}'"
end
但是,importfile.file.path
沒有返回正確的路徑。
那麼,我們如何才能得到一個文件的絕對路徑與文件名?任何幫助將不勝感激。
什麼是'importfile.file.path'返回? – Matthew
@Matthew:'file /home/user/rajesh/Project/public/system/import_files/files//original/Test2.xlsx does not exist',因爲這是試圖調用回形針上傳的路徑。 –
我會看看'文件//原創'。你有沒有看過你的回形針配置,以確保你沒有使用零值來建立你的路徑? – Matthew