2009-05-23 13 views
6

Ich habe eine grundlegende Schienenanwendungstest mit einem Benutzermodell, das ein Fotofeld mit Büroklammer behandelt hat. Ich habe die Ansichten erstellt, um einen Benutzer erstellen/bearbeiten zu können, und das Hochladen des Fotos funktioniert gut.Verwenden von Schienen mit Büroklammer und SWFUpload

<h1>Editing user</h1> 

<% form_for :user, @user, :url => user_path(@user), :html => { :method => "put", :multipart => true } do |f| %> 
    <%= f.error_messages %> 

    <p> 
    <%= f.label :first_name %><br /> 
    <%= f.text_field :first_name %> 
    </p> 
    <p> 
    <%= f.label :last_name %><br /> 
    <%= f.text_field :last_name %> 
    </p> 
    <p> 
    <%= f.label :file %><br /> 
    <%= f.file_field :file %> 
    </p> 

    <p> 
    <%= f.label :photo %><br /> 
    <%= f.file_field :photo %> 
    <p> 
    <%= f.submit 'Update' %> 
    </p> 

<% end %> 

<%= link_to 'Show', @user %> | 
<%= link_to 'Back', users_path %> 

Dann wollte ich SWFUpload in meine Anwendung integrieren. Ich habe versucht, diese tutorial folgen und die test project ohne Erfolg ausführen: die Schaltfläche Durchsuchen öffnet nicht einen Dateidialog und ein Fehler # 2176 ist warf, die über die selectFiles() -Methode ist.

Zuerst ist das Problem über Flash v.10, das nicht mit der alten Version von SWFUpload (2.1.0) kompatibel ist, die im Projekt enthalten ist: selectFiles() ist jetzt veraltet. Also habe ich versucht, auf SWFUpload v. 2.2.0 zu aktualisieren, das jetzt eine button_placeholder_id Einstellung verwendet, aber ich kann kein Beispiel zum Arbeiten bekommen.

Also ich bin ein bisschen verloren darüber, wie SWFUpload Initialisierung zu verwenden und über und in meinem Formular zu verwenden, damit ich ein Foto hochladen und speichern kann. Irgendwelche hilft?

Antwort

1

Für die Fotodatei Feld ID SWFUpload vorbei, wird die ID des Feldes gehen user_photo sein (von < input type = 'file' id = 'user_photo' .../>), so initialisieren swfupload mit

var swfupload = new SWFUpload({button_placeholder_id:'user_photo' ... }); 

, die das Dateifeld mit einem swf-Uploader ersetzen wird.

Beachten Sie, dass die Datei standardmäßig als 'Filedata' Parameter hochgeladen wird. Technisch könnte man das zu 'user [photo]' ändern, aber anscheinend funktioniert das nicht unter Linux, also müssen Sie eventuell etwas auf der Server-Seite shimmen, um das an die richtige Stelle zu bringen.

Verwandte Themen