2010-02-20 57 views
2

在我想要下載的文件名中的Part部分之後有一個空格。它看起來像http.get沒有正確傳遞url_path,因爲您可以從瀏覽器下載文件而不會有任何麻煩。可以通過http下載一個名稱中有空格的文件嗎? (ruby)

任何建議我怎麼可以下載如果有文件文件名中的空格

require 'net/http' 

url = "http://www.onalllevels.com/2009-12-02TheYangShow_Squidoo_Part 1.flv" 

puts url_base = url.split('/')[2] 
puts url_path = '/'+url.split('/')[3..-1].join('/') 

Net::HTTP.start(url_base) do |http| 
    resp = http.get(url_path) 
    open("test.flv", "wb") do |file| 
    file.write(resp.body) 
    end 
end 
puts "Done." 

回答

2

您需要正確編碼您的URL。喜歡的東西:

require 'uri' 
val = URI.escape("my parameter value") 
+0

@Beaner:您可以將此代碼添加到您的答案嗎? '要求'uri'; 把URI.escape('url to encode')' – Radek 2010-02-20 03:30:31

1

你可以嘗試用+%20替換空間。

+0

'+'不適合我,但'%20'很好用!謝謝。 – Radek 2010-02-20 03:26:02

相關問題