【问题标题】:How can I find the size of an uploaded file in Ruby on Rails?如何在 Ruby on Rails 中找到上传文件的大小?
【发布时间】:2012-05-15 20:12:48
【问题描述】:

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

【问题讨论】:

    标签: ruby-on-rails file-upload


    【解决方案1】:
    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"
    

    【讨论】:

    • 如何获得扩展?最好只在“.”处拆分文件名吗?
    • 要使用number_to_human_size,您需要将include ActionView::Helpers::NumberHelper 添加到您的班级。
    • 对于那些在控制台中测试时遇到问题的人,辅助方法不在控制台的范围内。 archive.railsforum.com/viewtopic.php?id=25150
    • 为什么在不需要的时候使用字符串插值? File.size(doc.filename) 工作正常,您不需要“#{}”包装器。
    • 好点安迪。更新。我能说什么,这是一个非常古老的答案;P
    【解决方案2】:
    params[:file].size
    File.extname(params[:file].original_name)
    

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

    【讨论】:

    • params[:file].size 很简单!
    • 我们如何知道尺码类型?是kb还是byte?
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2012-07-05
      • 2010-09-12
      • 1970-01-01
      • 2010-11-25
      • 1970-01-01
      • 2010-11-26
      • 2011-10-20
      • 2012-07-20
      • 1970-01-01
      相关资源
      最近更新 更多