2009-10-27 22 views

回答

1

你也需要在服務器上有東西。

我建議使用paperclip將文件存儲在您的服務器上。

一旦你設置好了,你應該讓你的ajax生成一個帶有「file」字段的表單。另外,請記住,表單必須是多部分。

<% form_for @picture, :html => { :multipart => true } do |f| %> 
    <%= f.file_field :file %> 
    <%= f.submit "Submit" %> 
<% end %> 

如果你只需要上傳一個文件,你可能不需要完整的AJAX - 只有普通的javascript - 用於顯示/隱藏表單。就像這樣:

<%= link_to_function 'Show/Hide image upload') do |page| 
     page.visual_effect :toggle_blind, 'upload_image' 
    end 
%> 

<div id='upload_image' style='display:none'> 
    <% form_for @picture, :html => { :multipart => true } do |f| %> 
    <%= f.file_field :file %> 
    <%= f.submit "Submit" %> 
    <% end %> 
</div> 

注意隱藏/顯示我使用的是Scriptaculous的效果股利,不只是原型 - Scriptaculous的被默認爲上軌反正包括在內。

0

可以使用remote_form_for與文件上傳插件,像attachment_fu或曲別針,然後渲染圖像重新站上查看,一旦它被上傳。可能在控制器中使用update_page。

0
https://github.com/JangoSteve/remotipart 

Remotipart是Ruby on Rails的寶石使AJAX文件上傳用jQuery中的Rails 3.0和Rails 3.1遠程表單。這個gem擴展了原生的Rails jQuery遠程表單功能,使得異步文件上傳幾乎不需要修改或者不需要修改應用程序。

gem 'remotipart', '~> 1.0' 
bundle install