Hallo zusammen, ich bin RoR-Anfänger und war heute den Ganzen Tag auf der Suche nach einem Tutorial, wie ich eine Datei in einer Datenbank speichere und wieder zum Download bereit stelle. Leider bezog sich alles was ich gefunden habe auf Bilder (in der Regel mit attachment_fu), was ich inzwischen bei mir installiert habe. Die Umsetzung für eine nicht Bild-Datei bekomme ich leider nicht hin. Ich bräuchte eine Anleitung für folgendes Scenarium: Tabelle mit 5 String-Feldern und einem BLOB-Feld (Alles mit scaffold und db:migrat angelegt). Die Datei die hoch geladen werden soll ist eine .bin-Datei und max. 40KB groß. Auf der NEW-Seite möchte ich die Datei hoch laden und auf der Index-Seite zum Download anbieten. Danke schon mal, für eure Mühe Dieter
on 2009-04-01 01:08
on 2009-04-01 02:08
On Wednesday 01 April 2009, Dieter Scherthan wrote: > Hallo zusammen, > > ich bin RoR-Anfänger und war heute den Ganzen Tag auf der Suche nach > einem Tutorial, wie ich eine Datei in einer Datenbank speichere und > wieder zum Download bereit stelle. Leider bezog sich alles was ich > gefunden habe auf Bilder (in der Regel mit attachment_fu), was ich > inzwischen bei mir installiert habe. Die Umsetzung für eine nicht > Bild-Datei bekomme ich leider nicht hin. Ob Bild oder sonstwas spielt eigentlich keine Rolle. Als Alternative zu Attachment_fu gibt es noch Paperclip, vielleicht ist das eher nach deinem Geschmack http://railscasts.com/episodes/134-paperclip Michael -- Michael Schuerig mailto:michael@schuerig.de http://www.schuerig.de/michael/
on 2009-04-01 08:34
Bild oder nicht Bild ist sicher egal: Aber die Anforderung, die Datei in der Datenbank abzulegen, wird so ohne weiteres weder von paperclip noch von attachment_fu implementiert: Die meisten legen ihre hochgeladenen Dateien irgendwo im Filesystem(auf auf Amazons S3) ab und lassen dann z.B. Apache mit x-sendfile diese Dateien streamen. (eine Diskussion Blobs vs. Filesystem gibt's z.B. hier http://stackoverflow.com/questions/57104/rails-bin...) . Wenn die Bilder also unbedingt in der Datenbank landen sollen, dann muss man da wohl in einem after_save das file nehmen und in die Datenbank streamen: Wenn ich das richtig überblicke, dann ist es hier mit einem einfachen save nicht getan... Dazu gibt es zumindest mit mysql einen Haufen Probleme mit blobs (Tabellen und backups werden langsam usw.) - wenn Dateien also nicht unbedingt in der Datenbank liegen sollen, dann würde ich sie vielleicht wirklich im Dateisystem liegen lassen... Oder hat das schon mal jemand gemacht und ist damit glücklich geworden?! GrüßeStefan Am 01.04.2009 um 02:07 schrieb Michael Schuerig: > Ob Bild oder sonstwas spielt eigentlich keine Rolle. Als Alternative > mailto:michael@schuerig.de > http://www.schuerig.de/michael/ > _______________________________________________ > rubyonrails-ug mailing list > rubyonrails-ug@headflash.com > http://mailman.headflash.com/listinfo/rubyonrails-ug ---- stefan frank vierundsechzig.de software&service weberstr. 10 69120 heidelberg tel. +49 (0) 6221 7277049 mobil +40 (0) 173 2383390 mail s.frank@vierundsechzig.de www.vierundsechzig.de
on 2009-04-01 14:19
Michael Schuerig wrote: > On Wednesday 01 April 2009, Dieter Scherthan wrote: >> Hallo zusammen, >> >> ich bin RoR-Anf�nger und war heute den Ganzen Tag auf der Suche nach >> einem Tutorial, wie ich eine Datei in einer Datenbank speichere und >> wieder zum Download bereit stelle. Leider bezog sich alles was ich >> gefunden habe auf Bilder (in der Regel mit attachment_fu), was ich >> inzwischen bei mir installiert habe. Die Umsetzung f�r eine nicht >> Bild-Datei bekomme ich leider nicht hin. > > Ob Bild oder sonstwas spielt eigentlich keine Rolle. Als Alternative zu > Attachment_fu gibt es noch Paperclip, vielleicht ist das eher nach > deinem Geschmack > > http://railscasts.com/episodes/134-paperclip > > Michael > > -- > Michael Schuerig > mailto:michael@schuerig.de > http://www.schuerig.de/michael/ Das Attachment_fu schein schon zu passen. Ich bräuchte nur eine Anleitung wie ich das für eine .bin-Datei umsetzen kann und wie ich das in meinen bestehenden Controller einbaue. Brauche ich denn immer diese Hilfstabelle und müssen alle Werte gefüllt sein? Dieter
on 2009-04-01 14:28
Stefan Frank wrote: > Bild oder nicht Bild ist sicher egal: Aber die Anforderung, die Datei > in der Datenbank abzulegen, wird so ohne weiteres weder von paperclip > noch von attachment_fu implementiert: Die meisten legen ihre > hochgeladenen Dateien irgendwo im Filesystem(auf auf Amazons S3) ab > und lassen dann z.B. Apache mit x-sendfile diese Dateien streamen. > (eine Diskussion Blobs vs. Filesystem gibt's z.B. hier > http://stackoverflow.com/questions/57104/rails-bin...) > . > > Wenn die Bilder also unbedingt in der Datenbank landen sollen, dann > muss man da wohl in einem after_save das file nehmen und in die > Datenbank streamen: Wenn ich das richtig �berblicke, dann ist es hier > mit einem einfachen save nicht getan... Dazu gibt es zumindest mit > mysql einen Haufen Probleme mit blobs (Tabellen und backups werden > langsam usw.) - wenn Dateien also nicht unbedingt in der Datenbank > liegen sollen, dann w�rde ich sie vielleicht wirklich im Dateisystem > liegen lassen... Oder hat das schon mal jemand gemacht und ist damit > gl�cklich geworden?! > > > Gr��eStefan > > > > > Am 01.04.2009 um 02:07 schrieb Michael Schuerig: > >> Ob Bild oder sonstwas spielt eigentlich keine Rolle. Als Alternative >> mailto:michael@schuerig.de >> http://www.schuerig.de/michael/ >> _______________________________________________ >> rubyonrails-ug mailing list >> rubyonrails-ug@headflash.com >> http://mailman.headflash.com/listinfo/rubyonrails-ug > > ---- > stefan frank > vierundsechzig.de > software&service > weberstr. 10 > 69120 heidelberg > tel. +49 (0) 6221 7277049 > mobil +40 (0) 173 2383390 > mail s.frank@vierundsechzig.de > www.vierundsechzig.de Laut Beschreibung von attachment_fu ist das Ablegen der Datei in einer Datenbank (bei mir übrigens Oracle) kein Problem. Das Für und Wieder, ob ich die Datei in der Datenbank ablege hab ich mir lange überlegt. Aus sicherungstechnischen Gründen und der geringen Größe von max. 10KB habe ich mich für die Datenbank entschieden. Dieter
on 2009-04-01 14:56
in der README für attachment_fu findest du doch haufenweise beispiele:
Examples:
has_attachment :max_size => 1.kilobyte
has_attachment :size => 1.megabyte..2.megabytes
has_attachment :content_type => 'application/pdf'
has_attachment :content_type => ['application/pdf', 'application/
msword', 'text/plain']
has_attachment :content_type => :image, :resize_to => [50,50]
has_attachment :content_type => ['application/
pdf', :image], :resize_to => 'x50'
has_attachment :thumbnails => { :thumb => [50, 50], :geometry =>
'x50' }
has_attachment :storage => :file_system, :path_prefix => 'public/
files'
has_attachment :storage => :file_system, :path_prefix => 'public/
files',
:content_type => :image, :resize_to =>
[50,50], :partition => false
has_attachment :storage => :file_system, :path_prefix => 'public/
files',
:thumbnails => { :thumb => [50, 50], :geometry =>
'x50' }
has_attachment :storage => :s3
:storage # Specifies the storage system to use..
# Defaults to :db_file. Options
are :file_system, :db_file, and :s3.
also einfach in das model was ein attachment haben soll:
has_attachment :content_type => 'text/plain'
gruß
manuel
Am 01.04.2009 um 14:28 schrieb Dieter Scherthan:
on 2009-04-01 15:34
>> >> Laut Beschreibung von attachment_fu ist das Ablegen der Datei in >> einer >> Datenbank (bei mir übrigens Oracle) kein Problem. Das Für und >> Wieder, ob >> ich die Datei in der Datenbank ablege hab ich mir lange überlegt. Aus >> sicherungstechnischen Gründen und der geringen Größe von max. 10KB >> habe >> ich mich für die Datenbank entschieden. oops, ja, tatsächlich: das hatte ich bei attachment_fu übersehen, dass das geht. Und es gibt auch einen paperclipfork, der die Dateien in die Datenbank schreibt: http://github.com/patshaughnessy/paperclip/tree/master bzw. http://patshaughnessy.net/paperclip-database-storage)
on 2009-04-02 17:23
Manuel Wiedenmann wrote: > in der README für attachment_fu findest du doch haufenweise beispiele: > > Examples: > has_attachment :max_size => 1.kilobyte > has_attachment :size => 1.megabyte..2.megabytes > has_attachment :content_type => 'application/pdf' > has_attachment :content_type => ['application/pdf', 'application/ > msword', 'text/plain'] > has_attachment :content_type => :image, :resize_to => [50,50] > has_attachment :content_type => ['application/ > pdf', :image], :resize_to => 'x50' > has_attachment :thumbnails => { :thumb => [50, 50], :geometry => > 'x50' } > has_attachment :storage => :file_system, :path_prefix => 'public/ > files' > has_attachment :storage => :file_system, :path_prefix => 'public/ > files', > :content_type => :image, :resize_to => > [50,50], :partition => false > has_attachment :storage => :file_system, :path_prefix => 'public/ > files', > :thumbnails => { :thumb => [50, 50], :geometry => > 'x50' } > has_attachment :storage => :s3 > > > :storage # Specifies the storage system to use.. > # Defaults to :db_file. Options > are :file_system, :db_file, and :s3. > > also einfach in das model was ein attachment haben soll: > > has_attachment :content_type => 'text/plain' > > gruß > manuel > > > > Am 01.04.2009 um 14:28 schrieb Dieter Scherthan: Hallo Manuel, für mich als Anfänger ist das nicht so einfach wie du das darstellst. Z.B. brauche ich diese Zwischentabelle? Wo gebe ich an, in welcher Tabelle/Feld die Datei letzten Endes gespeichert wird? Wie sieht der Link aus, mit dem ich die Datei wieder downloaden kann? Wie kann ich das in meinen bestehenden Controller/Modell einbinden? Desshalb bin ich auf der Suche nach einem entsprechenden Tutorial. Vielleicht hast du ja die Muse, mir da was zu erstellen. Gruß Dieter
on 2009-04-02 17:45
> der Suche nach einem entsprechenden Tutorial. > Vielleicht hast du ja die Muse, mir da was zu erstellen. > > Gruß > Dieter > -- > Posted via http://www.ruby-forum.com/. > _______________________________________________ > rubyonrails-ug mailing list > rubyonrails-ug@headflash.com > http://mailman.headflash.com/listinfo/rubyonrails-ug Ich glaube auf die entsprechenden railscasts hatte Manuel schon hingewiesen: Entweder Paperclip (etwas neuer, einfacher im Handling, aber blobs nur in einem fork): http://railscasts.com/episodes/134-paperclip Es gab auch mal einen railscast zu attachment_fu, aber der ist nicht mehr online...: Aber hier ist ein tutorial dazu: http://www.practicalecommerce.com/blogs/post/432-M... und googlen bringt sicher noch ein paar weitere zu Tage... Aber der Trend geht wohl eher zu paperclip, das ist einfacher im Handling/Testen. grüße Stefan
on 2009-04-02 18:03
Am 02.04.2009 um 17:23 schrieb Dieter Scherthan: Hallo Dieter.. also für attachment_fu und paperclip gibt es genügend tuts. google mal nach: rails paperclip Sicher ist es zu Anfang überhaupt nicht einfach die ganzen Zusammenhänge zu verstehen, da rails eben ein anderes Konzept als z.B. php hat. Ich würde dir raten einfach so ein Tut von a-z abzuarbeiten dann wird vieles klar und anschließend dann auf deine Umgebung anzupassen. Gruß Werner >> >> >> >> Am 01.04.2009 um 14:28 schrieb Dieter Scherthan: > > Hallo Manuel, > > für mich als Anfänger ist das nicht so einfach wie du das darstellst. > Z.B. brauche ich diese Zwischentabelle? Zwischentabelle? was ist das..? > Wo gebe ich an, in welcher > Tabelle/Feld die Datei letzten Endes gespeichert wird? > Wie sieht der > Link aus, mit dem ich die Datei wieder downloaden kann? Wie kann ich > das > in meinen bestehenden Controller/Modell einbinden? indem du dieses Model (und damit die db Tabelle )in deinem Controller ansprichst.. z.B. class BookingsController < ApplicationController def new_booking @booking = Booking.new @seminar = Seminar.find_by_id(params[:id]) Am besten ein Buch kaufen und lesen..für die Basics Die neue Bibel ist gerade erschinen und sehr gut lesbar, nicht so ein typisch deutscher Informatik Schinken Agile Webdevelopment with Rails BuchVersion 3.0 da steht wirklich fast alles wesentliche drin. Gruß > http://mailman.headflash.com/listinfo/rubyonrails-ug Werner Laude news@wernerlaude.de
on 2009-04-02 20:39
Werner Laude wrote: > Am 02.04.2009 um 17:23 schrieb Dieter Scherthan: > > Hallo Dieter.. > also f�r attachment_fu und paperclip gibt es gen�gend tuts. > google mal nach: rails paperclip > > Sicher ist es zu Anfang �berhaupt nicht einfach die ganzen > Zusammenh�nge zu verstehen, da rails eben ein anderes Konzept als z.B. > php hat. > > Ich w�rde dir raten einfach so ein Tut von a-z abzuarbeiten dann wird > vieles klar und anschlie�end dann auf deine Umgebung anzupassen. > > > Gru� > Werner > > >>> >>> >>> >>> Am 01.04.2009 um 14:28 schrieb Dieter Scherthan: >> >> Hallo Manuel, >> >> f�r mich als Anf�nger ist das nicht so einfach wie du das darstellst. >> Z.B. brauche ich diese Zwischentabelle? > > Zwischentabelle? was ist das..? > >> Wo gebe ich an, in welcher >> Tabelle/Feld die Datei letzten Endes gespeichert wird? > > >> Wie sieht der >> Link aus, mit dem ich die Datei wieder downloaden kann? Wie kann ich >> das >> in meinen bestehenden Controller/Modell einbinden? > > > indem du dieses Model (und damit die db Tabelle )in deinem Controller > ansprichst.. > > z.B. > > class BookingsController < ApplicationController > > def new_booking > @booking = Booking.new > @seminar = Seminar.find_by_id(params[:id]) > > > > Am besten ein Buch kaufen und lesen..f�r die Basics > > Die neue Bibel ist gerade erschinen und sehr gut lesbar, nicht so ein > typisch deutscher Informatik Schinken > > Agile Webdevelopment with Rails > BuchVersion 3.0 > da steht wirklich fast alles wesentliche drin. > > Gru� > > >> http://mailman.headflash.com/listinfo/rubyonrails-ug > Werner Laude > news@wernerlaude.de Hallo Werner, ich denke, ich werde es mal mit Paperclip versuchen, wenn's einfacher sein soll. Und ich denke, ein Tutorial außerhalb meines Projekts einmal durchspielen kann nicht schaden. Zum Thema Buch: 2 Bücher bin ich schon durch. Zu meinem Problem steht da nur so was wie: benutzen sie am besten attachment_fu. Nicht wirklich hilfreich. In eine ältere Version von "Agile Webdevelopment with Rails" hab ich online mal reingeschaut, das sah nicht schlecht aus. Werde mir mal die aktuelle Version zulegen. Für's erste war es dann hier für mich. Sobald ich mein Problem gelöst habe, nehm ich mich mal einem Tutorial über dieses Thema an. Gruß Dieter
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.