ruby-on-rails – Rails Carrier Wave with JQuery Uploader
我正在使用Rails Carrier Wave与
JQuery上传,就像这个
rails tutorial,但是当我点击上传按钮时我有一个错误:
Error: SyntaxError: JSON.parse 任何建议/建议是非常好的. 解决方法
为什么不尝试
Uploadify?
步骤1 将宝石’carrier_wave’添加到您的Gemfile. 第2步 将此代码保存到/lib/flash_session_cookie_middleware.rb中: require 'rack/utils' class FlashSessionCookieMiddleware def initialize app,session_key = '_session_id' @app = app @session_key = session_key end def call env if env['HTTP_USER_AGENT'] =~ /^(Adobe|Shockwave) Flash/ request = Rack::Request.new env env['HTTP_COOKIE'] = [@session_key,request.params[@session_key]].join('=').freeze unless request.params[@session_key].nil? env['HTTP_ACCEPT'] = "#{request.params['_http_accept']}".freeze unless request.params['_http_accept'].nil? end @app.call env end end 步骤3 编辑session_store.rb并将此代码添加到文件的末尾: Rails.application.config.middleware.insert_before( ActionDispatch::Session::CookieStore,FlashSessionCookieMiddleware,Rails.application.config.session_options[:key] ) 步骤4 下载Uploadify并解压缩. 步骤5 >将jquery.uploadify.v2.1.4.min.js和swfobject.js复制到 步骤6 编辑你的application.js并插入下面: //= require swfobject //= require jquery.uploadify 步骤7 在您上传的页面中,添加: <input id="uploadify" name="uploadify" type="file"/> 步骤8 将此代码添加到您上传脚本: $(document).ready(function() { <% key = Rails.application.config.session_options[:key] %> var uploadify_script_data = {}; var csrf_param = $('meta[name=csrf-param]').attr('content'); var csrf_token = $('meta[name=csrf-token]').attr('content'); uploadify_script_data[csrf_param] = encodeURI(encodeURIComponent(csrf_token)); uploadify_script_data['<%= key %>'] = '<%= cookies[key] %>'; $('#uploadify').uploadify({ uploader : '/assets/uploadify.swf',script : '/photos',cancelImg : '/images/cancel.png',auto : true,multi : true,removeCompleted : true,scriptData : uploadify_script_data,onComplete : function(event,ID,fileObj,doc,data) { } }); }); 步骤9 写下你的控制器: def create @photo = Photo.new image: params[:file_data] @photo.save end 注意:已通过Uploadify 2.1.4进行了测试. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |