Pokazanie obrazka z bajtow

Witam,
chcialbym aby ludzie wrzucali zdjecia przez formularz. Zalezy mi na tym, aby przez ajaxa jak podadza plik do uploadowania pojawila sie jego miniatura, tak aby byli pewni, ze wrzucaja wlasciwe zdjecie.
Da sie jakos wyswietlic params[‘upload’][‘datafile’].read ?
A moze jest jakis inny sposob?
Pozdrawiam i prosze o pomoc

responds_to_parent

http://kpumuk.info/ruby-on-rails/in-place-file-upload-with-ruby-on-rails/

Nie wiem czy do konca o to mi chodzilo. Chcialbym wyswietlic obrazek jeszcze przed zapisaniem go na serwerze.

Zeby wyswietlic zdjecie musisz miec do niego sciezke. Wiec musisz je zgrac na serwer. Mozesz ustawic flage do zdjec.

Nie potrzeba żadnej ścieżki, można wysłać dowolny ciąg bajtów, z dowolnego źródła.
Potrzebujesz send_data.

Dzieki za podpowiedzi.
Mam teraz taki problem jak z observe_field przekazac ten plik do controllera, jak robie:
<%= observe_field :upload_datafile,
:update => “show_file”,
:url => {:action => “show_file”} ,
:with => “plik” ,
:frequency => 0.5 %>

a potem w controllerze
img=params[:plik].read

wyskakuje mi
undefined method `read’ for “/home/lis2/Desktop/2550.jpg”:String

Nie no, tak nie przejdzie. Pliku ajaxem nie wyślesz. Ale da się zrobić coś co wygląda jak wysłanie pliku po ajaxie. Sam niedawno musiałem coś takiego zrobić. Poczytaj:
http://khamsouk.souvanlasy.com/2007/5/1/ajax-file-uploads-in-rails-using-attachment_fu-and-responds_to_parent
http://kpumuk.info/ruby-on-rails/in-place-file-upload-with-ruby-on-rails/
http://www.caboo.se/articles/2007/4/2/ajax-file-upload

Generalnie chodzi o trick, w którym tworzysz formularz uploadu, ale któremu ustawiasz wartośc atrybutu “target” na id ukrytego iframe’a. Dzięki czemu formularz zostanie wysłany jakby w tle, bez przeładowanie strony.

Dziekuje za pomoc, poczytam i mam nadzieje, ze sie uda:)

[quote=radarek]http://khamsouk.souvanlasy.com/2007/5/1/ajax-file-uploads-in-rails-using-attachment_fu-and-responds_to_parent
(…)
Generalnie chodzi o trick, w którym tworzysz formularz uploadu, ale któremu ustawiasz wartośc atrybutu “target” na id ukrytego iframe’a. Dzięki czemu formularz zostanie wysłany jakby w tle, bez przeładowanie strony.[/quote]
Przecież zawarłem to w swoim pierwszym poście w temacie. Ech, widocznie jeszcze nie wszystkim wystarczą, zgodne z filozofią Ruby’ego, jednolinijkowce :wink:

Ale jak widać nie dotarło do autora topicu :P. Ja tam skojarzyłem o co kaman ;).