2015-02-16 4 views
1

Я использую roo-rb для доступа к загруженным файлам. Мой код выглядит так:Rails Rename tempfile

s = Roo::Excelx.new(params[:upload][:file].tempfile.path) 

Но у меня возникли проблемы с ним, потому что генерируется временный файл не имеет расширения и у меня это исключение:

.../AppData/Local/Temp/RackMultipart20150216-10192-13yn50s не является Excel-файл XLSX

есть ли способ, чтобы переименовать tempfile.path так, что она будет иметь правильное расширение (XLSX)? Или есть более элегантный способ решить эту проблему?

ответ

0

Я успешно переименовал временный файл (даже при развертывании на Heroku) с помощью fileutils. Вот код:

require 'roo' 
require 'fileutils' 

tmp = params[:upload][:file].tempfile 
file = File.join("public", params[:upload][:file].original_filename) 
FileUtils.cp tmp.path, file 

s = Roo::Excelx.new(file) 
Смежные вопросы