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 に答える