I''m not sure what you mean fully, but I think you mean save an item
from the
FS or URL...not uploaded via a form
here is an example from when I used a FileColumn to upload an image to my
database using a URL (it is 2 years old and very ugly code)
essentially in your case just treat your string as I do the URL
*in environment.rb have:*
require ''ftools''
require ''fileutils''
*and in your controller something like*
raise if not orig =~
/^(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(([0-9]{1,5})?\/.*)?$/ix
logger.error "???????????? VALUE >> #{orig}"
response = false
#if good url format, get the file
tn = open(orig)
filename = orig.split("/")
tp = tn.path
nf = File.new(tp)
nf_path = File.split(nf.path)
f = "#{nf_path[0]}" << "/" <<
"#{filename.last}"
#dreamhost is case sensitive, this is for URL''s only
f = f.downcase
logger.error "FFFFFFFFFFF #{f}"
FileUtils.touch f
#sleep 2
ff = File.new("#{f}")
FileUtils.copy nf.path, ff.path
@tile.img_name = File.new(ff.path) #gold
rescue
if response == false
logger.error "???????????? BAD URL >> #{orig}"
end
end
else
#if orig is empty
logger.error "ZZZZZZZZZZZZZZZZZZZ NO URL >> #{orig}"
end
#if both img fields are empty: upload a default img (for now)
if @tile.img_name.nil?
#@tile.img_name = File.new(RAILS_ROOT +
"/public/images/rails.png")
#gold default if they do not upload a file
logger.error "???????????? no FILE"
if @tile.img_path.empty? or response == false
@tile.img_name = File.new(RAILS_ROOT +
"/public/images/default.jpg")
#gold default if they do not upload a file
logger.error "???????????? no URL"
end
else
#params[:tile][:img_name].path.downcase
end
if @tile.save
#email admin about new tile
MailMe::deliver_new_tile(@session[:user], @tile.id);
@ts_e.save
if session[:user].login == "anonymous"
redirect_to :controller => ''/user/logout''
else
redirect_to :controller => ''/user/account/''
end
else
render :action => ''index'' #should go back to
upload_tile
end
checkout working example at www.blogsaic.com/tile
no login required
On Sat, Apr 19, 2008 at 12:26 AM, phil <plr-Mmb7MZpHnFY@public.gmane.org>
wrote:
>
> Hey,
>
> im creating a new bookmark with a form and i''m uploading an image
with
> File Column. This works well!
>
>
> But another function is to copy this bookmark. That means it will be
> created a new Object, with an new Id. All the other attributes should
> be copied from the original. That works, but not with the "image"
> attribute. Thats where the fileColumn Image is placed. Im getting the
> error:
>
> ''Do not know how to handle a string with value
''/path/Bild_4.jpg''
>
> I think fileColumn expects an File, and not an string url. But i
don''t
> know to solve this Problem :(
>
> Here is my Code:
>
>
> @bookmark = Bookmark.new(:title => oldBookmark.title,
> :url => oldBookmark.url,
> :description => oldBookmark.description,
> :confirmed => 0,
> :user =>User.find(session[:user]),
> :image => oldBookmark.image )
>
> @bookmark.save
>
>
>
> Maybe someone has an idea? Thanks a lot!
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
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?hl=en
-~----------~----~----~----~------~----~------~--~---