Как я могу получить расширение файла из URI для приложения rails

Я хочу найти расширения файлов, такие как .gif,.jpg,.txt из uri, например http://testasp.vulnweb.com/avatars/noavatar.gif.

Ответ 1

Вы можете использовать метод extname для файла

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

Ответ 2

Там может быть более простой способ сделать это, но я бы рекомендовал использовать комбинацию библиотек Pathname и 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

Смотрите Pathname и URI библиотечные документы для получения дополнительной информации.

Ответ 3

Если вы находитесь в Rails и говорите о расширении пути URL-адреса запроса, вы можете сделать это с помощью контроллера или помощника:

File.extname(request.path)

Отмечая, что request.path - это метод объекта запроса в контроллере rails.

И отмечая, что request.path никогда не будет возвращать нуль.

Ответ 4

Я знаю, что вы спросили об извлечении расширения файла, хотя посмотрите на этот вопрос/ответы Определите тип файла в Ruby, это лучше и безопаснее полагаться на mime тип, а не расширение.