如何在Ruby on Rails中找到上传文件的大小?

Jak*_*cst 15 file-upload ruby-on-rails

我没有使用carrierwave或paperclip来上传文件.我想找出文件扩展名和用户上传的文件的大小(以字节为单位)?有关如何实现这一目标的任何想法?

Abr*_*ram 22

File.size(doc.filename)
Run Code Online (Sandbox Code Playgroud)

只需将文件名称放入大括号中即可设置.

如果您想要KB/MB使用:

number_to_human_size(File.size(doc.filename))
Run Code Online (Sandbox Code Playgroud)

编辑:

您可以使用确切的路径或路径名

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

对于扩展:

File.extname("test.rb")         #=> ".rb"
Run Code Online (Sandbox Code Playgroud)

  • 要使用`number_to_human_size`,您需要在您的类中添加`include ActionView :: Helpers :: NumberHelper`. (4认同)

Yur*_*hov 7

params[:file].size
File.extname(params[:file].original_name)
Run Code Online (Sandbox Code Playgroud)

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