我正在使用 swfupload 的最新版本 2.2.0 和 rails 2.3.3。看到许多声明我必须用一段代码替换 CGI::Session.initialize 以从注入我的表单 url 的键值对中提取会话,我将代码段合并到我的环境中。 RB:
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 打包的会话 id 和真实性令牌中获得什么秘诀(它们也不是从 params 中提取的)?