I am trying to save an email attachment as a blob to the db. I''m trying
to it within our existing framework which uses RMagick to read the image
as a blob. When it does this I get a "JPEG datastream contains no
image"
error. Here is my code.
// Handles receiving the email
class AssetSubmitHandler < ActionMailer::Base
def receive(email)
if email.has_attachments?
email.attachments.each do |attachment|
img = Photo.create(:original_data => attachment)
asset = Asset.create(:user_id => 2)
asset.resource = img
asset.save
end
end
end
end
//Handles saving the image
class Photo < ActiveRecord::Base
//..some code
def original_data=(file)
if file.size > 0
if file.respond_to? :read
img = Magick::Image.from_blob(file.read)[0] //this call causes
the error
else
img = Magick::Image.from_blob(file)[0]
end
img.format = ''JPG''
self[:original_data] = img.to_blob
self.width = img.columns
self.height = img.rows
end
GC.start
end
//..more code
end
Do I need to base 64 decode the attachment? I could find a library
function to do this.
--
Posted via http://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk
-~----------~----~----~----~------~----~------~--~---