Я пытаюсь загрузить изображение из URL в рубин и рельсов, до сих пор, что я сделал этоЗагрузка изображения из URL в Ruby, и Rails
require 'base64'
parsedUri = URI.parse('http://somewebsite.com/path/to/image.jpeg')
http = Net::HTTP.new(parsedUri.host, parsedUri.port)
if params[:src].include? "https"
http.use_ssl = true
end
request = Net::HTTP::Get.new(parsedUri.request_uri, {'User-Agent' => 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0'})
response = http.request(request)
image = Base64.encode64(response.body)
File.open('some.jpeg', "w+") do |f|
f.write(image)
end
, Теперь этот код делает файл в моем корневой каталог, но когда я его открываю, он дал мне ошибку «Ошибка интерпретации файла изображения JPEG (не файл JPEG: начинается с 0x64 0x61)», ирония заключается в том, когда я открываю этот файл в gedit и использую тот же base64, который был закодирован для рендеринга изображения в браузер с использованием тега img. Изображение получается визуализированным. Я использую Ubuntu. Пожалуйста, помогите мне водить меня орехи
Я не вижу необходимости называть 'Base.encode'. Вы пробовали это без этого? Просто 'image = response.body'? – spickermann
@spickermann это сработало благодаря –