簡體   English   中英

獲取要導入文件的絕對路徑/位置+文件名-Ruby / Rails

[英]Get absolute path/location of file to be imported + the file name - Ruby/Rails

我正在使用paperclip gem將excel文件上傳到我的應用程序中。 上傳之前,我想檢查header column names是否存在。 因此,我需要使用其路徑打開文檔並閱讀標題內容。 但是,由於我們是在導入過程之前執行此操作的,因此我們應該從被訪問的路徑而不是從上傳回形針文件的路徑中打開它。

例如,

假設我從'/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沒有返回正確的路徑。

那么,如何獲取文件的絕對路徑以及文件名呢? 任何幫助將不勝感激。

如果我理解正確,那么您的問題與paperclip無關,並且我認為瀏覽器在使用文件上傳功能時從不會將本地路徑發送到文件。

是什么阻止您在運行導入之前檢查附件?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM