有没有简单的方法如何处理Rails中的AJAX文件上传?例如用插件
当然有可能,here你有一个教程和一些插件的链接。
如果您正在使用Rails 3,我编写了一个插件,使AJAX样式文件上传相对简单,无法实现。
JQuery File Upload是一个非常活跃的多功能文件上传小部件项目。
请参阅此处的演示:http://blueimp.github.com/jQuery-File-Upload/
这是宝石:http://rubygems.org/gems/jquery.fileupload-rails
维基也有Rails示例:https://github.com/blueimp/jQuery-File-Upload/wiki
实际上并没有必要使用一些特殊的插件。最简单的方法是为我做ajax图片上传只是制作上传图片就像ajax一样的表格。为此,我使用ajaxForm jQuery插件:http://www.malsup.com/jquery/form/然后返回到js上传的图片并将其放到您的页面。
所以,你应该让你的表单成为ajaxForm:
$('#uploader').ajaxForm({dataType: "script",
success: ajaxFormErrorHandler,
error: ajaxFormSuccessHandler
}
控制器看起来像这样:
def add_photo
@photo = PhotosMeasurement.new(params[:user_photo])
respond_to do |format|
if @photo.save
format.json { render :json => @photo}
else
format.json { render :json => nil}
end
end
end
在ajaxForm成功处理程序中,您只需获取图片对象:
var photo = jQuery.parseJSON(responseText.responseText);
并将照片放在任何你喜欢的地方:
target.find('.addPhoto').before(''+
'<input class="imageId" type="hidden" value='+photo.id+' > '+
'<img src='+photo.photo.thumb.url+' alt="Thumb_1"> ');
P.S:不知道为什么,但如果你返回ajaxForm处理程序的东西,它处理该请求为ERROR而不是SUCCESS。
P.P.S:肯定jQuery-File-Upload插件可以提供更多,但是如果你不需要所有这些,你可以使用这种方式。
P.P.P.S:你应该已经有功能的非ajax文件上传了=)
你可以使用Jquery Form