Handling file upload onto local filesystem


#1

Hi,

I have a multipart form upload field uploaded through <%=
file_field(“profile”, “profile”) %>

Once a submit happens, the action basically does something like:

profile = Profile.new(params[“picture”])

This invokes the models = to method:

def picture=(picture_field)
…do a bunch of assignments here
end

def validate
… do a bunch of validations before saving
end

do the actual file handling stuff here.

def after_save

end

My question is, is the after_save method the right place to put the File
manipulation stuff to copy and save the file on a directory on my local
webserver filesystem? Also, how do I get access to the actual file in
the
after_save so that I could do stuff like the following:

file.local_path (basically work with the file object so that I could
copy it
over from its local path onto my filesystem)

and one more question, how do I pass stuff into this function that comes
from the controller but is not necessarily an attribute of the Profile
model?

Thanks in advance.


#2

you could try using the file_column plugin.
makes things very easy to handle and you can do image processing (with
rmagick installed):

http://www.kanthak.net/opensource/file_column/

that’s my easy answer…

dorian


#3

Hi,

I decided against the file_column plugin due to some limitations in how
i’d
have to access a file in a view using url_for_file_column. Are there
any
other suggestions on my question, like on passing variables down to the
model from the controller?

Thanks.