Направляющие: Как к загрузить файл с http и сохранить его в базу данных

я хотел бы создать контроллер направляющих, которые загружают serie jpg файлов от сети и непосредственно пишут им в базу данных как двоичный файл (я не пытаюсь сделать форму загрузки),

Какая-либо подсказка о способе сделать это?

Спасибо

Редактирование: Вот некоторый код, который я уже написал драгоценному камню вложения-fu использования:

http = Net::HTTP.new('awebsite', 443)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
http.start() { |http|
   req = Net::HTTP::Get.new("image.jpg")
   req.basic_auth login, password
   response = http.request(req)
   attachment = Attachment.new(:uploaded_data => response.body)
   attachement.save
}

И я получаю "неопределенный метод 'content_type' для #" ошибка

7
задан John Topley 3 April 2010 в 17:37
поделиться

1 ответ

Используйте открытый URL-адрес (в стандартной библиотеке Ruby), чтобы захватить файлы, затем используйте драгоценный камень, например скрепку , чтобы сохранить их в базе данных в качестве вложений к вашим моделям.

ОБНОВЛЕНИЕ:

Attachment_fu не принимает необработанные байты, ему нужен «файловый» объект. Используйте этот пример LocalFile вместе с приведенным ниже кодом, чтобы выгрузить изображение во временный файл, а затем отправить его в вашу модель.

  http = Net::HTTP.new('www.google.com')
  http.start() { |http|
     req = Net::HTTP::Get.new("/intl/en_ALL/images/srpr/logo1w.png")
     response = http.request(req)
     tempfile = Tempfile.new('logo1w.png')
     File.open(tempfile.path,'w') do |f|
       f.write response.body
     end
     attachment = Attachment.new(:uploaded_data => LocalFile.new(tempfile.path))
     attachement.save
  }
6
ответ дан 7 December 2019 в 09:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: