Tolong sarankan saya cara untuk menyimpan gambar dari URL dengan Paperclip.
ruby-on-rails
ruby
upload
paperclip
khanh
sumber
sumber
update_attributes
ganti namapicture_from_url
menjadipicture_url=(value)
misalnya.user.picture_from_url('/etc/password')
. Mungkin baik-baik saja dalam kebanyakan situasi.open(url)
, nama file tidak akurat, misalnya,open-uri20150106-10034-lpd5fm.
bukanef3a601e_ef3d008b_ef3d0f7e.jpg
.Di Paperclip 3.1.4 ini menjadi lebih sederhana.
Ini sedikit lebih baik daripada buka (url). Karena dengan open (url) Anda akan mendapatkan "stringio.txt" sebagai nama filenya. Dengan cara di atas Anda akan mendapatkan nama file yang tepat berdasarkan URL. yaitu
sumber
application/octet_stream
sebagaicontent_type
.Ini tidak berhasil untuk saya sampai saya menggunakan "buka" untuk URI yang diuraikan. setelah saya menambahkan "buka", itu berhasil!
Versi penjepit kertas saya adalah 4.2.1
Sebelum dibuka itu tidak akan mendeteksi jenis konten dengan benar, karena itu bukan file. Ini akan mengatakan image_content_type: "binary / octet-stream", dan bahkan jika saya menimpanya dengan tipe konten yang tepat itu tidak akan berhasil.
sumber
Pertama unduh gambar dengan
curb
permata ke aTempFile
dan kemudian cukup tetapkan objek tempfile dan simpan model Anda.sumber
Mungkin membantu Anda. Berikut adalah kode menggunakan penjepit kertas dan gambar yang ada di URL jarak jauh.
Dalam model
sumber
Karena itu adalah Jawaban lama, inilah yang lebih baru:
Tambahkan Image Remote URL ke Controller yang Anda inginkan dalam Database
Edit Model Anda
* Di Rails4 Anda harus menambahkan attr_accessible di Controller.
Perbarui formulir Anda, jika Anda mengizinkan orang lain untuk mengunggah Gambar dari URL
sumber
super
untuk?super
ini digunakan untuk memanggil metode asli, pencarian metode tubuh dimulai di kelas super dari objek yang ditemukan mengandung metode asliIni adalah metode hardcore:
dimana Uuid.uuid hanya membuat beberapa ID acak.
sumber
Ke dalam dokumentasi resmi dilaporkan di sini https://github.com/thoughtbot/paperclip/wiki/Attachment-downloaded-from-a-URL
Pokoknya sepertinya tidak diperbarui, karena pada versi terakhir penjepit kertas ada yang berubah dan baris kode ini tidak lagi valid:
Ini menimbulkan kesalahan, khususnya kesalahan ini dimunculkan:
Sintaks baru yang benar adalah yang ini:
Juga kita perlu menambahkan baris ini ke file config / initializers / paperclip.rb :
Menguji ini dengan versi penjepit kertas
5.3.0
dan berhasil.sumber