Speichern Sie Bild aus URL, von Büroklammer
Bitte machen Sie mir eine Möglichkeit zum speichern eines Bildes von einer URL durch Büroklammer.
InformationsquelleAutor khanh | 2010-10-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bitte machen Sie mir eine Möglichkeit zum speichern eines Bildes von einer URL durch Büroklammer.
InformationsquelleAutor khanh | 2010-10-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist ein einfacher Weg:
Dann einfach :
Wenn Sie brauchen, um zu verwenden
update_attributes
umbenennenpicture_from_url
zupicture_url=(value)
zum Beispiel.Dies ist möglicherweise unsicher, weil ein Benutzer nennen könnte
user.picture_from_url('/etc/password')
. Es ist wahrscheinlich gut in den meisten Situationen aber.Siehe Antwort unten noch eine bessere Lösung.
Mit
open(url)
, der Dateiname ist nicht korrekt, z.B.open-uri20150106-10034-lpd5fm.
stattef3a601e_ef3d008b_ef3d0f7e.jpg
.InformationsquelleAutor Nicolas Blanco
In Büroklammer-3.1.4 ist es nun noch einfacher.
Dies ist etwas besser als die offene(url). Da bei open(url) du gehst zu bekommen "stringio.txt" als Dateiname. Mit den oben genannten wirst du einen richtigen Namen der Datei auf der Basis der URL. also
Aus Büroklammer-wiki: github.com/thoughtbot/paperclip/wiki/..., die ich erfolgreich ausführen in der Konsole, die app ist in der heroku.
FYI, für S3 urls bekomme ich noch
application/octet_stream
alscontent_type
.Wenn Sie noch mit einer Büroklammer nach veralteten, möglicherweise müssen Sie auch sicherstellen, dass der URI-IO-loader geladen wird: Büroklammer::UriAdapter.registrieren (in der config, oder vorübergehend über die Konsole, wenn das ist alles, was Sie brauchen)
Sie meinen Tag gerettet!!!!
InformationsquelleAutor Aditya Sanghi
Laden Sie zunächst das Bild mit der
curb
Edelstein zu einemTempFile
und dann weisen Sie einfach den tempfile-Objekt und speichern Sie Ihr Modell.Dies ist die leistungsstärkste Antwort (weit). Ich bin nicht wirklich ein performance-freak, aber das summiert sich, wenn Sie die Arbeit w/ große Dateien.
InformationsquelleAutor Ariejan
Es hat nicht funktioniert für mich, bis ich verwendet "öffnen" analysiert URI.
einmal habe ich Hinzugefügt "öffnen" es hat geklappt!
Meine Büroklammer-version ist 4.2.1
Bevor Sie es öffnen, würde nicht erkennen, die der content-type richtig, denn es war nicht eine Datei. Es würde sagen, image_content_type: "binary/octet-stream", und selbst wenn ich das überschreiben es mit der richtigen content-Typ, es würde nicht funktionieren.
InformationsquelleAutor Mïchael Makaröv
Kann es für Sie hilfreich. Hier ist der code, mit Büroklammer und Bild präsentieren, die in remote-URL .
Im Modell
InformationsquelleAutor prabu
Da diese alte Antwort, hier ist eine neuere:
Bild hinzufügen, Remote-URL zu Ihrem gewünschten Controller in der Datenbank
Bearbeiten Sie Ihr Modell
*In Rails4, müssen Sie die attr_accessible in der Steuerung.
Aktualisieren Sie Ihre form, wenn Sie zulassen, dass andere ein Bild hochladen von einer URL
super
?Die Funktion
super
dient zum aufrufen der ursprünglichen Methode, der Suche von der Methode, die Körper beginnt in der super-Klasse des Objekts, die gefunden wurde, um die original-MethodeInformationsquelleAutor Mini John
Dies ist ein hardcore-Methode:
wo Uuid.uuid-macht einfach einige zufällige ID.
InformationsquelleAutor Martin Streicher
In die offizielle Dokumentation ist hier berichtet https://github.com/thoughtbot/paperclip/wiki/Attachment-downloaded-from-a-URL
Jedenfalls scheint es nicht aktualisiert, da in der letzten version der Büroklammer hat sich etwas geändert und diese Zeile code ist nicht mehr gültig:
Es ein Fehler, insbesondere dieser Fehler ausgelöst wird:
Die neue korrekte syntax ist:
Ebenfalls, müssen wir hinzufügen dieser Zeilen in config/Initialisierungen/Büroklammer.rb Datei:
Getestet, mit Büroklammer version
5.3.0
und es funktioniert.InformationsquelleAutor Diego D