2009-05-23 33 views
6

Tôi có thử nghiệm ứng dụng đường ray cơ bản với mô hình người dùng có trường ảnh được xử lý bằng kẹp giấy. Tôi đã tạo các chế độ xem để có thể tạo/chỉnh sửa người dùng và việc tải lên ảnh đang hoạt động tốt.Sử dụng Rails với Paperclip và 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 %> 

Sau đó, tôi muốn tích hợp SWFUpload vào ứng dụng của mình. Tôi đã cố gắng để làm theo này tutorial và chạy test project mà không có bất kỳ thành công: nút duyệt không mở hộp thoại tệp và lỗi # 2176 được ném về phương thức selectFiles().

Trước tiên, vấn đề là về Flash v.10 không tương thích với phiên bản cũ của SWFUpload (2.1.0) đi kèm với dự án: selectFiles() hiện không còn được dùng nữa. Vì vậy, tôi đã cố gắng nâng cấp lên SWFUpload v. 2.2.0 mà bây giờ sử dụng một thiết lập button_placeholder_id nhưng tôi không thể nhận được bất kỳ ví dụ để làm việc.

Vì vậy, tôi đã mất một chút về cách sử dụng tính năng khởi chạy SWFUpload và về và sử dụng nó trong biểu mẫu của tôi để tôi có thể tải lên và lưu ảnh. Có giúp gì không?

Trả lời

1

Bạn có thể thử sử dụng easy-swf-upload plugin

Bạn sẽ chỉ cần phải chèn một helper và có thể áp dụng css

1

Đối với truyền id lĩnh vực tập tin ảnh để SWFUpload, id của lĩnh vực của bạn sẽ là user_photo (từ < input type = 'file' id = 'user_photo' .../>), do đó khởi SWFUpload với

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

sẽ thay thế trường tệp bằng trình tải lên swf.

Hãy nhớ rằng theo mặc định, tệp sẽ được tải lên dưới dạng thông số 'Filedata'. Về mặt kỹ thuật, bạn có thể thay đổi điều đó thành 'người dùng [ảnh]', nhưng dường như điều đó không hoạt động trên Linux, vì vậy bạn có thể phải làm một số việc làm lộn xộn ở phía máy chủ để di chuyển nó vào đúng chỗ.

Các vấn đề liên quan