17

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

4

3 回答 3

27
File.size(doc.filename)

只需将文件名放入大括号中,您就应该设置好。

如果您想要 KB/MB 使用:

number_to_human_size(File.size(doc.filename))

编辑:

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

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"
于 2012-05-15T20:16:34.650 回答
10
params[:file].size
File.extname(params[:file].original_name)

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

于 2012-05-15T20:49:08.227 回答
1

您可以使用 Ruby 的 File 类方法。

于 2012-05-15T20:19:15.753 回答