Upload plikow

Witam
sprawa bardzo prosta lecz dziwnie nie dziala hmm

mam model: User, zawiera on pole img standardowo jest to sciezka do pliku img, lecz podczas zapisu chcialbym uploadowac wybrany przez usera obrazek

w view mam cos takiego:

<% form_for :user do |f| %> ... <%= f.file_field 'img'%> ...
controller

if @user.save User.save(params[:user][:img]) controller:
w modelu User

def self.save(upload) n = upload.original_filename #[color=red]TUTAJ WYWALA BLAD[/color] dir = "public/data" path = File.join(n, dir) File.open(path, "wb") { |f| f.write(upload.read) } end
i niestety wywala blad :expressionless:

undefined method `original_filename’ for “wybrany_pli.txt”:String

Jak dodajesz pole do wgrywania plików to trzeba dodać opcję multipart do formularza

<% form_for :user, :html => { :multipart => true } do |f| %> ... <%= f.file_field 'img'%> ...

sprytne, dzieki za odpowiedz ladnie dziala,
a wiesz moze (badz ktos inny) jak manipulowac obrazkiem? tzn. jak zmiejszac jego rozmiar podczas uploadu etc.?

pozdrawiam

[quote=laziers]sprytne, dzieki za odpowiedz ladnie dziala,
a wiesz moze (badz ktos inny) jak manipulowac obrazkiem? tzn. jak zmiejszac jego rozmiar podczas uploadu etc.?[/quote]
ja używam np.
file_column i rmagic
http://www.kanthak.net/opensource/file_column/

zobacz: http://wiki.rubyonrails.org/rails/pages/HowtoUploadFiles sekcja Other approaches

pozdrawiam

hmm bardzo fajnie sie przedstawia ten file_column ale czy on aby czasem nie wrzuca obrazka do bazy czy normalnie do katalogu?

Ja bym polecil jednak attachment_fu

  1. backendy: filesystem, database, amazon s3 lub wlasne (np. cos w oparciu o drb)
  2. aktywnie rozwijany w przeciwienstwie do file_column
  3. wykorzystujac polimorfizm jeden model np. Assets zalatwia wszystkie upoloadowane/zalaczane do modeli pliki w aplikacji np:
    User (has_one :photo), Company (has_one :logo), Report (has_many :attachments) itd. Zobacz: http://blog.defv.be/2007/12/19/attachment_fu-with-polymorphic-association

A zapomnialbym…
4) Wspolpracuje z ImageScience, Rmagick, MiniMagick podczas gdy file_coumn tylko z Rmagick, ktorego jesli mozna nalezy unikac :slight_smile:

rowniez ciekawe, bede musial to przegladnac,

dzieki

Do katalogu. Choć tak jak mówi pawel, jedyny problem jaki się może pojawić do RMagic z którym czasem są problemy (moja app dopiero się rozkręca, więc jeszcze nie napotkałem żadnych).

pozdrawiam

rozumie, okey, dzieki

pozdr.

jakiego typu to jest błąd:

zamiasta nazwy_pliku.jpg w bazie zapisuje się

— !ruby/object:File {} , na stronie też wyskakuje to samo

wszystko to co jest powyżej jest zrobione

natomiast do katalogu public/data pliki dobrze się dodają czyli jako nazwa_pliku.jpg