Per favore suggeriscimi un modo per salvare un'immagine da un URL di Paperclip.Salva immagine da URL con graffetta
risposta
Ecco un modo semplice:
Poi basta:
user.picture_from_url "http://www.google.com/images/logos/ps_logo2.png"
Prima scaricare l'immagine con la gemma curb
su TempFile
e quindi assegnare semplicemente l'oggetto tempfile e salvare il modello.
non vedo cosa c'è di sbagliato con questa risposta, il voto in su perche' sto vedendo un voto basso. – jpemberthy
Questa è la risposta più performante ([di gran lunga] (http://toevolve.org/2011/04/03/http-request-performance.html)).Non sono un vero appassionato di prestazioni, ma questo si aggiunge davvero se si lavora con file di grandi dimensioni. – Chip
Questo è un metodo Hardcore:
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)
dove Uuid.uuid fa solo un po 'di ID casuale.
Può utile a voi. Ecco il codice che utilizza paperclip e l'immagine presente nell'URL remoto.
require 'rubygems'
require 'open-uri'
require 'paperclip'
model.update_attribute(:photo,open(website_vehicle.image_url))
Nel modello
class Model < ActiveRecord::Base
has_attached_file :photo, :styles => { :small => "150x150>", :thumb => "75x75>" }
end
In Paperclip 3.1.4 è diventato ancora più semplice.
def picture_from_url(url)
self.picture = URI.parse(url)
end
Questo è leggermente migliore di open (url). Perché con open (url) otterrai "stringio.txt" come nome file. Con quanto sopra avrai un nome proprio del file basato sull'URL. cioè
self.picture = URI.parse("http://something.com/blah/avatar.png")
self.picture_file_name # => "avatar.png"
self.picture_content_type # => "image/png"
Come si può ottenere questo funzionamento se si è dietro un proxy? – Sebastian
Da paperclip wiki: https://github.com/thoughtbot/paperclip/wiki/Attachment-downloaded-from-a-URL L'ho eseguito correttamente in console, l'app è in heroku. –
FYI, per gli URL S3 ottengo ancora 'application/octet_stream' come' content_type'. –
Come quelli sono vecchi risposta di qui è una più recente:
Aggiungi immagine URL remoto per il controller desiderato nel database
$ rails generate migration AddImageRemoteUrlToYour_Controller image_remote_url:string
$ rake db:migrate
Modificare il modello
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
* In Rails4 devi aggiungere attr_accessible nel Controller.
aggiornare il modulo, se si consente loro di caricare un'immagine da un URL
<%= f.input :image_remote_url, label: "Enter a URL" %>
a cosa serve il 'super'? –
La funzione 'super' è usata per invocare il metodo originale, la ricerca del corpo del metodo inizia nella super classe dell'oggetto che è stato trovato per contenere il metodo originale –
Non ha funzionato per me fino a quando ho usato "aperto" per URI analizzato. una volta che ho aggiunto "aperto" ha funzionato!
def picture_from_url(url)
self.picture = URI.parse(url).open
end
La mia versione è 4.2.1 graffetta
Prima aperto non sarebbe rilevare il tipo di contenuto a destra, perché non era un file. Direbbe image_content_type: "binary/octet-stream", e anche se lo sovrascrivo con il giusto tipo di contenuto non funzionerebbe.
- 1. Download immagine da URL non sempre salva l'intera immagine (WinRT)
- 2. Salva file con graffetta tramite API
- 3. Salva immagine dall'URL con cURL
- 4. graffetta personalizzato: percorso e: URL
- 5. Salva immagine con Mechanize e Nokogiri?
- 6. anteprime rigeneranti con graffetta a graffetta
- 7. Salva immagine dall'URL con HTMLUnit
- 8. Immagine di intervento: salva l'immagine direttamente da un url con nome file originale e ext?
- 9. Get URL da anteprima immagine URL
- 10. Ottenere Immagine da URL (Java)
- 11. RStudio non salva immagine
- 12. Salva immagine nella galleria
- 13. Salva tutti i file di immagine da un sito web
- 14. Salva bitmap Immagine a file
- 15. Salva immagine canvas sul server
- 16. Salva tabella HTML come immagine
- 17. Immagine da URL per lo streaming
- 18. R salva tabella come immagine
- 19. PHP Salva immagine Dopo imagecopyresampled
- 20. Salva grafico flottaggio come immagine
- 21. Graffetta con JRuby
- 22. Salva immagine in sandbox da UIImage in iPhone
- 23. Salva esatto uscita immagine da imagesc in MATLAB
- 24. Sostituisci URL immagine non valido con immagine 404
- 25. Disabilita il menu 'salva immagine' su iPhone con Javascript
- 26. Modifica URL immagine Wordpress
- 27. URL condivisione immagine Android con Facebook SharePhotoContent
- 28. Yii Gestore risorse - css con URL immagine
- 29. ridimensiona immagine svg inserita con contenuto: url()
- 30. Prestashop immagine URL
Ho bisogno di utilizzare update_attribute per qualche motivo. –
Semplice ed efficace. Grazie uomo. – goo
Se è necessario utilizzare 'update_attributes' rinominare' picture_from_url' in 'picture_url = (valore)' ad esempio. –