2011-01-09 2 views
3

Ich möchte ein Base64 Foto mit Büroklammer behandeln.
Wenn ich es versuche:base64 Foto und Büroklammer -Ränder

photo = Photo.new 
string = base64string 

photo.photo = StringIO.new(Base64.decode64(string)) 
photo.save 

Es funktioniert nicht. Warum?

Vielen Dank im Voraus.

Antwort

9

Vergewissern Sie sich, dass der von Ihnen verwendete StringIO der geöffnete Büroklammer ist. https://github.com/thoughtbot/paperclip/blob/master/lib/paperclip/upfile.rb

sio = StringIO.new(Base64.decode64(string)) 
puts sio.respond_to?(:original_filename) 
puts sio.respond_to?(:content_type) 

Es braucht diese Methoden zu haben, um Büroklammer Arbeit mit StringIO zu haben. Stellen Sie sicher, dass sie eingestellt sind.

+1

ausgezeichnet, danke :) – amaseuk

+0

Ich verstehe diese Antwort nicht, und der GitHub-Link zur Verfügung gestellt wird, ist gebrochen. Irgendwelche Updates? – Raphael

+0

Das Problem ist, dass Paperclip geöffnet und hinzugefügt Methoden zu der Ruby-Core-Klasse StringIO und erwartet, dass die StringIO, die Sie verwenden, sie hat. Das ist was der Antwort_to? Anrufe sind entscheidend. Ich bin mir nicht sicher, ob das wahr ist oder wohin sie Büroklammergit verschoben haben. Vielleicht möchten Sie das finden. –