如何从rails获取rails应用程序的文件扩展名

时间:2012-01-06 10:38:13

标签: ruby-on-rails ruby

我想从uri中找到类似.gif,.jpg,.txt的文件扩展名,如http://testasp.vulnweb.com/avatars/noavatar.gif

4 个答案:

答案 0 :(得分:24)

您可以使用文件

的extname方法
url = "http://testasp.vulnweb.com/avatars/noavatar.gif"
File.extname(url) #=> .gif

答案 1 :(得分:5)

可能有一种更简单的方法可以执行此操作,但我建议您使用PathnameURI库的组合

require 'uri'

uri = URI("http://testasp.vulnweb.com/avatars/noavatar.gif")

path = uri.path # /avatars/noavatar.gif

pathname = Pathname.new(path)

extension = pathname.extname # gif

有关详细信息,请参阅PathnameURI库文档。

答案 2 :(得分:2)

如果您在Rails中并且您正在谈论请求URL路径的扩展,您可以从控制器或帮助程序执行此操作:

File.extname(request.path)

注意到request.path是rails控制器中请求对象的一种方法。

并注意到request.path永远不会返回nil。

答案 3 :(得分:0)

我知道你问过提取文件扩展名,但是看看这个问题/答案Determine file type in Ruby依靠mime类型而不是扩展名更好更安全。