2011-02-10 5 views
1

Im пытается получить http://www.uploadify.com/ для работы с Ruby on Rails 3.0.3, файлы загружаются, однако я пытаюсь исправить следующее сообщение об ошибке. Любая помощь очень ценится.Uploadify - Paperclip - Rails 3.0.3

работы POST "/ видео /" для 10.170.163.142 в 2011-02-10 16:57:16 +0000 обработки на VideosController # создать в HTML Параметры: { "Имя файла" => "tvshow. AVI " "папка"=> "/", "_website_session"=> "BAh7CEkiD3Nlc3Npb25faWQGOgZFRiIlOTA1OTIwODE1NDNkZDhkYzU2Yjc0MWJhMTdiNWFlZTlJIhBfY3NyZl90b2tlbgY7AEZJIjEvd3dnSjQ3NE83cDQ3SkF0ZXU4alN3dHdkaHl5Wm9vV29XRllBOWc1ajRBPQY7AEZJIgx1c2VyX2lkBjsARmkG - f618cf0d51fe1beebcc03eb200d1b3d023c98757", "/ wwgJ474O7p47JAteu8jSwtwdhyyZooWoWFYA9g5j4A"=> "= authenticity_token", "Filedata"=> #>, "Загрузить"=>" Отправить Query "} Завершено в 0ms

ActionController :: InvalidAuthenticityToken (Ac tionController :: InvalidAuthenticityToken): приложение/промежуточного/flash_session_cookie_middleware.rb: 17: в `вызов»

Вынесено /Volumes/Storage/.rvm/gems/ruby-1.9.2-p136/gems/actionpack-3.0. 3/lib/action_dispatch/middleware/templates/rescues/_trace.erb (2.8ms) Представлено /Volumes/Storage/.rvm/gems/ruby-1.9.2-p136/gems/actionpack-3.0.3/lib/action_dispatch /middleware/templates/rescues/_request_and_response.erb (11.2ms) Представлено /Volumes/Storage/.rvm/gems/ruby-1.9.2-p136/gems/actionpack-3.0.3/lib/action_dispatch/middleware/templates/ rescues/diagnostics.erb в пределах спасения/макета (20,4 мс)

Я не понимаю, что здесь, почему файл не загружается?

require 'rack/utils' 

    class FlashSessionCookieMiddleware 

     include Rack::Utils 

     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/ 
      params = ::Rack::Request.new(env).params 
      env['HTTP_COOKIE'] = [ @session_key, params[@session_key] ].join('=').freeze unless params[@session_key].nil? 
     end 
     @app.call(env) 
     end 
    end 
+0

смотрите здесь: https://github.com/apneadiving/Pic-upload---Crop-in-Ajax – apneadiving

ответ

1

Я нашел этот плагин https://github.com/trevorturk/flash_cookie_session, который сделал свою работу очень хорошо, вот мой взгляд

<% content_for :head do %> 
<link href="/uploadify/uploadify.css" type="text/css" rel="stylesheet" /> 
<script type="text/javascript" src="/uploadify/jquery.min.js"></script> 
<script type="text/javascript" src="/uploadify/swfobject.js"></script> 
<script type="text/javascript" src="/uploadify/jquery.uploadify.min.js"></script> 
<script type="text/javascript"> 
<%- session_key = Rails.application.config.session_options[:key] -%> 
$(document).ready(function() { 
    $('#video-upload').uploadify({ 
    uploader  : '/uploadify/uploadify.swf', 
    cancelImg  : '/uploadify/cancel.png', 
    auto   : true, 
    multi   : false, 
    script   : '/videos/', 
    onComplete  : function(a, b, c, response){ eval(response) }, 
    scriptData  : { 
      "<%= key = Rails.application.config.session_options[:key] %>" : "<%= cookies[key] %>", 
      "<%= request_forgery_protection_token %>" : "<%= form_authenticity_token %>", 
      } 
    }); 
}); 
</script> 
<% end %> 

Спасибо всем.

+0

flash_cookie_session теперь легко интегрируется с uploadify-rails 3.1.1.1.Просто включите flash_cookie_session в свой Gemfile перед загрузкой-рельсами, и проблема с флэш-сеансом будет обработана за кулисами. –

0

Предлагаю вам напечатать вашу @session_key в инициализации и убедиться, что она верна. Имя ключа и его значение должны совпадать с именем вашего инициализатора.

0

Просто примечание, на рейках 3 Мне пришлось добавить u и encodeURIComponent, чтобы заставить его работать.

{ 
"<%= key = Rails.application.config.session_options[:key] %>" : "<%= u cookies[key] %>", 
"<%= request_forgery_protection_token %>" : encodeURIComponent("<%= u form_authenticity_token %>"), 
} 
1

Я искал какое-то время, наконец нашел этот код для использования. Однако новые параметры Uploadify находятся там. Быстрый с/р (это HAML)

Uploadify 3,1

$(document).ready(function() { 
       $('#image-uploader').uploadify({ 
       swf    : '/uploadify/uploadify.swf', 
       uploadLimit  : 10, 
       auto   : true, 
       multi   : false, 
       script   : '/videos/', 
       onComplete  : function(a, b, c, response){ eval(response) }, 
       formData  : { 
         '"#{key = Rails.application.config.session_options[:key]}"' : '"#{cookies[key]}"', 
         '#{request_forgery_protection_token}' : '#{form_authenticity_token}', 
         } 
       }); 
      }); 

Эта часть:

cancelImg  : '/images/uploadify/cancel.png', 

Переехал в CSS файл.

Для сеансов используйте flash_cookie_session gem, это намного лучше, чем пытаться забить решение.

Смежные вопросы