Я хочу найти расширения файлов, такие как .gif,.jpg,.txt из uri, например http://testasp.vulnweb.com/avatars/noavatar.gif.
Как я могу получить расширение файла из URI для приложения rails
Ответ 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 тип, а не расширение.