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

Ruby on rails 如何从rails应用程序的URI获取文件扩展名,ruby-on-rails,ruby,Ruby On Rails,Ruby,我想从uri中查找文件扩展名,如.gif、.jpg、.txt。可能有更简单的方法,但我建议结合使用路径名和uri库 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 有关更多信息,

我想从uri中查找文件扩展名,如.gif、.jpg、.txt。

可能有更简单的方法,但我建议结合使用
路径名
uri

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

有关更多信息,请参阅和库文档。

您可以使用文件的extname方法

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

我知道您询问了提取文件扩展名的问题,不过请看一下这个问题/答案,依赖mime类型而不是扩展名更好、更安全。

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

File.extname(request.path)
注意request.path是rails控制器中请求对象的一个方法


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

Thanx用于重播…我的另一个问题是如何遍历uri的源文件夹并获得扩展名?…您假设URL看起来像文件路径,但这不一定是有效的假设。如果存在片段或CGI参数,会发生什么?