我有一个第三方应用程序(上传进度条 - swfupload),我正在使用rails 2.3.3,它无法传递会话信息或cookie。但是,我可以将应用程序中的会话数据打包到用于上传文件的URI中,并在获取文件时检索该文件。
麻烦的是,我看到没有任何一个神奇的黑客在网络上漂浮着2.3.3。我不知道原因的具体细节,但我甚至尝试过使用swfupload的最小RESTful演示应用程序,它与我的方式相同。
我需要的是一种强制从字符串重新加载会话的方法,该字符串已知包含会话数据。有点像:
if session[:user_id]
do stuff
else
session.reload(session_string_from_uri)
end
你明白了。
不,我对尝试Rails的另一个上传器解决方案不感兴趣。我已经有足够的失败,我会坚持使用这个解决方案,因为对我当前问题的简单回答将解决我的问题。
答案 0 :(得分:0)
不确定这是否适合您,但我的swfuploader修复很简单,因为我们有数据库会话。
_options['session_id'] = params[ _options['session_key'] ]
session = Session.find_by_session_id(_options['session_id'])
答案 1 :(得分:0)
您需要使用机架中间件从发布的数据和Flash请求中恢复会话。这是一篇非常好的文章,解释了这一点:http://jetpackweb.com/blog/2009/10/21/rails-2-3-4-and-swfupload-rack-middleware-for-flash-uploads-that-degrade-gracefully/comment-page-1/