使用Prototype.js插件上传AJAX

时间:2009-10-27 05:29:30

标签: ruby-on-rails ajax image upload prototypejs

如何使用prototype.js插件使用ajax上传图像文件,我需要在上传后显示这些图像请帮助解决这个问题。

由于

3 个答案:

答案 0 :(得分: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>

请注意,为了隐藏/显示div我正在使用Scriptaculous效果,而不仅仅是原型 - 无论如何,scriptaculous默认包含在rails上。

答案 1 :(得分:0)

您可以将remote_form_for与upload_fu或paperclip等文件上传插件一起使用,然后在上传后将图像渲染回视图。可能在控制器中使用update_page。

答案 2 :(得分:0)

https://github.com/JangoSteve/remotipart

Remotipart是一个Ruby on Rails gem,可以在Rails 3.0和Rails 3.1远程表单中使用jQuery上传AJAX文件。这个gem增强了原生的Rails jQuery远程表单功能,可以实现异步文件上传,几乎不需要修改你的应用程序。

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