2014-01-23 2 views
1

Я загрузил файл .xls, но я не могу прочитать его roo. В контроллере у меня есть:rails read xls загруженный файл

def create 
    name = params[:upload][:file].original_filename 
    directory = "public/uploads" 
    path = File.join(directory, name) 
    file = File.open(path, "wb") { |f| f.write(params[:upload][:file].read) } 
    flash[:notice] = "File uploaded" 
    file.inspect 
    Product.import(params[:upload][:file].original_filename)  
    redirect_to upload_path 
    end 

В модели:

def self.import(file) 

    spreadsheet = open_spreadsheet(file) 
end 


    def self.open_spreadsheet(upload) 
    directory = "public/uploads" 
    file = File.join(directory, upload) 
    case File.extname(file.original_filename) 
    when ".csv" then Csv.new(file.path, nil, :ignore) 
    when ".xls" then Excel.new(file.path, nil, :ignore) 
    when ".xlsx" then Excelx.new(file.path, nil, :ignore) 
    else raise "Unknown file type: #{file.original_filename}" 
    end 
    end 

Но загрузить переменную У меня есть строки, и я не могу использовать методы файлов. Как я могу открыть уже загруженный файл для чтения с помощью roo gem?

ответ

1

я описал, как работать с загрузкой без использования драгоценных камней здесь:

https://stackoverflow.com/a/9545030/1001324

Вы косяк работы с исходным именем файлом на serveside, как вы это делаете.

Смежные вопросы