Using attachment fu in masse


#1

I’m trying to use attachment fu to add a large number of images at
once using a script but i can’t even get it to add an image from the
console… the other documentation i’ve found no longer seems to work.

Something like this doesn’t work properly

c = Image.new
c.content_type = ‘image/jpeg’
c.filename = ‘test.jpg’
c.discussion_id = 7330
c.uploaded_data = File.open(’/Users/holden/Desktop/pictures/
LionsFW.jpg’)
c.save

It does save… but the file doesn’t get populated.

All the previous documentatio circa 2007 says :temp_file but this is
no longer available to i tried switching it to :uploaded_data, but
that doesn’t seem to work either…

also it want’s the size and is a required field, but shouldn’t this be
automatically deduced… providing it doesn’t help either…

Any suggestions would be a great help,

Thanks,

holden


#2

Something like this almost work…

Discussion.new
(:name=>“test2”, :location_id=>“1036”, :image_attributes=>
[{ :uploaded_data=> File.new("/Users/holden/Desktop/pictures/
LionsFW.jpg") }], :website=>“testdsfdf”, :geo=>"", :phone=>“test”,
:blurb=>“testdsfsdfsdf”, :address=>“test”, :hwID=>“test”,
:email=>“removed_email_address@domain.invalid”)

undefined method `[]’ for #<File:/Users/holden/Desktop/pictures/
LionsFW.jpg


#3

Here’s how I’m doing it:

    file = ActionController::UploadedStringIO.new( data ) #this is

the real data
file.instance_variable_set( ‘@original_filename’,
“#{rand(1000)}_#{filename}” )
file.content_type = i.content_type

    i.uploaded_data=( file )
    i.save!

Maurício Linhares
http://alinhavado.wordpress.com/ (pt-br) | http://blog.codevader.com/
(en)


#4

You can try with the example in the attachment_fu home (http://
github.com/technoweenie/attachment_fu/tree/master):

i.uploaded_data = ActionController::TestUploadedFile.new(file_path,
mimetype)

Regards.

Franco C…


#5

I tried using ActionController::UploadedStringIO.new( data )

and it does create the files… but the images don’t work.

Is data supposed to be the filepath? ie. photos/joe.jpg ?

I also found an example of exactly what I want to do in the Practical
Rails Plugins book, but which is outdated using “temp_data =” It
looks simple and perfect, what am I missing?

http://books.google.com/books?id=c1L4IzmUzicC&pg=PA49&lpg=PA49&dq=attachment+fu+console+creation&source=bl&ots=0LhR2tApt6&sig=Kufto1uWSuhThKpy-dzVCzybKOI&hl=en&ei=Ca4iSoHZBMyOsAa36NC3Bg&sa=X&oi=book_result&ct=result&resnum=1

On May 31, 11:22 pm, Maurício Linhares removed_email_address@domain.invalid


#6

nevermind found this lurking in the documentation… i suppose i
should have read it better before looking else where… ;-(

#!/usr/bin/env ./script/runner

required to use ActionController::TestUploadedFile

require ‘action_controller’
require ‘action_controller/test_process.rb’

path = “./public/images/x.jpg”

mimetype is a string like “image/jpeg”. One way to get the mimetype

for a given file on a UNIX system

mimetype = file -ib #{path}.gsub(/\n/,"")

mimetype = “image/jpeg”

This will “upload” the file at path and create the new model.

@attachable = AttachmentMetadataModel.new(:uploaded_data =>
ActionController::TestUploadedFile.new(path, mimetype))
@attachable.save