2009-08-04 49 views
0

我正在使用swfupload的最新版本2.2.0和rails 2.3.3。看到了大量的聲明,我將不得不用大塊代碼替換CGI :: Session.initialize以從注入到表單url的鍵值對中提取會話,我將代碼段合併到我的環境中。 RB:Rails拒絕從swfupload發送的數據加載會話

require 'cgi' 
class CGI::Session 
    alias original_initialize initialize 
    def initialize(request, option = {}) 
     session_key = option['session_key'] || '_session_id' 
     query_string = if (qs = request.env_table["QUERY_STRING"]) and qs != "" 
      qs 
     elsif (ru = request.env_table["REQUEST_URI"][0..-1]).include?("?") 
      ru[(ru.index("?") + 1)..-1] 
     end 
     if query_string and query_string.include?(session_key) 
      option['session_id'] = query_string.scan(/#{session_key}=(.*?)(&.*?)*$/).flatten.first 
     end 
     original_initialize(request, option) 
    end 
end 

我看到的會話信息被正確地裝入形式參數文件上傳,但上面的代碼是從來沒有射擊帶來的會話信息從數據庫中。

從params-packed會話id和真實性令牌中得到什麼祕訣(它們不是從params中拾取的)?

回答

1
+0

考慮到我對得到這個工作多少時間,我已經投資了它是如何接近,我希望得到的答案,如果在所有可能的原題。我看了一下機架中間件頁面,雖然它在代碼中給出了一個工作示例,但是沒有一個可以檢查以供參考的運行示例。再說一遍,我寧願讓我目前的問題得到解決,然後把整個事情拋到一邊,然後去做一些新的事情。謝謝,不過。我會把它作爲我的下一個選擇。 – Sniggerfardimungus 2009-08-04 17:35:29