2012-12-04 12 views
32

Co to dobry sposób, aby wyodrębnić filename.jpg od:Jaki jest dobry sposób na pobranie nazwy pliku z adresu URL w Ruby?

url = 'http://www.example.com/foo/bar/filename.jpg?2384973948743' 

Używam Ruby 1.9.3.

+1

było niektórzy odpowiedzią usefu dla ciebie? –

+0

Tak, twoja odpowiedź była przydatna. Przejrzałem to. –

+1

@silvu, czy konieczne jest trollowanie, aby Twoja odpowiedź została przyjęta? Uznanie odpowiedzi za dobrą formę jest uważane za dobrą formę i uważa się, że nie należy do nich tragicznie. Wy dwoje spotykacie się gdzieś pośrodku, ale decyzję podejmuje OP. –

Odpowiedz

79
require 'uri' 

url = 'http://www.example.com/foo/bar/filename.jpg?2384973948743' 

uri = URI.parse(url) 

puts File.basename(uri.path) 

#=> filename.jpg 
3

Najprostszym sposobem jest prawdopodobnie używać URI.parse

url_object = URI.parse([my url]) 
url_path = url_object.path 
filename = url_path.split("/").last 
+0

nie uwzględnia parametrów po podstawowej, nadal przydatna odpowiedź – akostadinov

2

Jeśli nie oczekiwać query_string w url, można po prostu użyć File.basename

puts File.basename('http://example.com/folder1/folder2/file.txt') 

Wyświetla file.txt

Powiązane problemy