Как найти размер загруженного файла в Ruby on Rails?

Я не использую несущую или скрепку для загрузки файла. Я хочу узнать расширение файла и размер в байтах файла, который пользователь загрузил? Любые идеи о том, как я могу это достичь?

Ответ 1

File.size("#{doc.filename}")

Просто введите имя файла в фигурные скобки, и вы должны быть установлены.

Если вы хотите использовать KB/MB:

number_to_human_size(File.size("#{doc.filename}"))

EDIT:

Вы можете использовать точный путь или Pathname

1.9.3p125 :005 > x=Pathname.new("/usr/bin/ruby")
 => #<Pathname:/usr/bin/ruby> 
1.9.3p125 :006 > File.size(x)
 => 5488 

Для расширения:

File.extname("test.rb")         #=> ".rb"

Ответ 2

params[:file].size
File.extname(params[:file].original_name)

или params[:file].original_name.match(/\.(\S*)$/).try(:"[]",1)

Ответ 3

Вы можете использовать методы класса Ruby File.