Пожалуйста, предложите мне способ сохранить изображение по URL-адресу от Paperclip.Сохранить изображение с URL по paperclip
ответ
Вот простой способ:
Тогда просто:
user.picture_from_url "http://www.google.com/images/logos/ps_logo2.png"
Сначала загрузите изображение с помощью драгоценного камня curb
в TempFile
, а затем просто назначьте объект tempfile и сохраните свою модель.
Я не понимаю, в чем проблема с этим ответом, голосуя за него, потому что я вижу вниз голос. – jpemberthy
Это самый результативный ответ ([на сегодняшний день] (http://toevolve.org/2011/04/03/http-request-performance.html)).Я на самом деле не выродка, но это действительно добавляет, если вы работаете с большими файлами. – Chip
Это хардкорный метод:
original_url = url.gsub(/\?.*$/, '')
filename = original_url.gsub(/^.*\//, '')
extension = File.extname(filename)
temp_images = Magick::Image.from_blob open(url).read
temp_images[0].write(url = "/tmp/#{Uuid.uuid}#{extension}")
self.file = File.open(url)
где Uuid.uuid просто делает некоторый случайный идентификатор.
Это может быть полезно для вас. Вот код с использованием скрепки и изображения, присутствующих в удаленном URL-адресе.
require 'rubygems'
require 'open-uri'
require 'paperclip'
model.update_attribute(:photo,open(website_vehicle.image_url))
В модели
class Model < ActiveRecord::Base
has_attached_file :photo, :styles => { :small => "150x150>", :thumb => "75x75>" }
end
В Скрепка 3.1.4 это стало еще проще.
def picture_from_url(url)
self.picture = URI.parse(url)
end
Это немного лучше открытого (url). Потому что с открытым (url) вы получите «stringio.txt» в качестве имени файла. С приведенным выше вы получите правильное имя файла на основе URL-адреса. т.е.
self.picture = URI.parse("http://something.com/blah/avatar.png")
self.picture_file_name # => "avatar.png"
self.picture_content_type # => "image/png"
Как можно получить эту работу, если вы находитесь за прокси? – Sebastian
Из вики-страницы: https://github.com/thoughtbot/paperclip/wiki/Attachment-downloaded-from-a-URL Я успешно запускаю ее в консоли, приложение находится в геройку. –
FYI, для URL-адресов S3 Я все еще получаю 'application/octet_stream' как' content_type'. –
Как те старый ответ здесь более новый один:
Добавить изображение удаленного URL для нужного контроллера в базе данных
$ rails generate migration AddImageRemoteUrlToYour_Controller image_remote_url:string
$ rake db:migrate
Корректировать модель
attr_accessible :description, :image, :image_remote_url
.
.
.
def image_remote_url=(url_value)
self.image = URI.parse(url_value) unless url_value.blank?
super
end
* В Rails4 вы должны добавить attr_accessible в контроллер.
Обновление вашей формы, если вы позволите другой, чтобы загрузить изображение из URL
<%= f.input :image_remote_url, label: "Enter a URL" %>
что такое 'супер'? –
Функция 'super' используется для вызова исходного метода, поиск тела метода начинается в суперклассе объекта, который, как было обнаружено, содержит исходный метод –
Это не работает для меня, пока я не использовал «открытым» для разобранного URI. Как только я добавил «открыть», это сработало!
def picture_from_url(url)
self.picture = URI.parse(url).open
end
Моя скрепка версия 4.2.1
Перед открыть его не обнаружит правильный тип контента, потому что он не был файл. Он сказал бы image_content_type: «binary/octet-stream», и даже если я переопределю его с правильным типом содержимого, он не сработает.
- 1. Как сохранить изображение в paperclip по URL
- 2. Paperclip сохранить изображение вне: rails_root
- 3. Не удается сохранить изображение с помощью paperclip
- 4. Сохранить изображение по URL-адресу
- 5. Сохранить изображение из URL через paperclip - параметры неперечисленных
- 6. Изображение с Paperclip- Rails
- 7. Paperclip сохранить изображение без потери качества
- 8. Как pixelate изображение paperclip
- 9. Сохранить изображение из URL
- 10. Как правильно сохранить изображение base64 с помощью Paperclip
- 11. Сохранить изображение в базе данных с помощью rails paperclip plugin
- 12. Удалить оригинальное приложение, но сохранить уменьшенное изображение с помощью Paperclip
- 13. Сохранить изображение с другой модели/контроллера по URL-адресу, а не по форме
- 14. Сохранить изображение из URL-адреса с помощью paperclip с помощью HTTP-базовой проверки подлинности
- 15. paperclip duplicate url error
- 16. Rails Paperclip Сохранить изображения из URL-адреса в базу данных
- 17. Paperclip изображение не видно, когда сохранить в AWS-SDK
- 18. Прикрепить изображение в виде от url с помощью Paperclip (Rails)
- 19. Загрузить изображение из URL с помощью Paperclip в AWS S3
- 20. Сохранить изображение с URL-адреса с HTMLUnit
- 21. сохранить изображения с помощью paperclip без вида
- 22. Сохранить изображение с url в специальную папку
- 23. Rails PAPERCLIP статических файлов с абсолютным URL
- 24. Невозможно сохранить несколько изображений с помощью paperclip
- 25. Как сохранить холст с помощью Paperclip
- 26. Как сохранить изображение с URL-адреса?
- 27. Как сохранить изображение с URL-адреса?
- 28. скачать и сохранить изображение с url
- 29. Сохранить изображение с URL-адреса в localstorage
- 30. Сохранить изображение с url на sdcard
По какой-то причине мне нужно было использовать update_attribute. –
Простой и эффективный. Спасибо чувак. – goo
Если вам нужно использовать 'update_attributes' переименование' picture_from_url' для 'picture_url = (значение)' например. –