手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆

备忘:swfUpload注意事项

首页 > PHP >

在使用swfupload上传文件的时候,老是绕不过登录验证。查了一下GOOGLe,没查到,问了百度,他告诉我答案:

swfuplaod在上传时,会新开一个进程,和原来的进程不一致,要解决这个问题,需要指定session_id,然后在登录页面判断,如果有post过来的session_id,那么就用函数session_id( $_POST['PHP_SESSIONID'])指定一下。

上传页的JS里面,可以获取当前的SESSION_ID的。

例如上传页的JS中:

post_params: {"PHPSESSID": "<?php echo session_id(); ?>"},

在验证的判断页中:

        if (isset($_POST["PHPSESSID"])) {
            session_id($_POST["PHPSESSID"]);
        }

(这一段是网上的注释:在带有Session验证的网站后台中SWFUpload无法正常工作,这是因为SWFUpload在上传时相当于重新开辟了一个新的Session 进程,因此无法与原有程序的Session保持一致,这就需要在上传时传递原有程序的SessionID,根据它来“找回”其应有的Session。)




本站采用创作共享版权协议, 要求署名、非商业和保持一致. 本站欢迎任何非商业应用的转载, 但须注明出自"膘叔", 保留原始链接, 此外还必须标注原文标题和链接.

Tags: swfupload

« 上一篇 | 下一篇 »

只显示10条记录相关文章

又是swfupload惹的祸 (浏览: 24464, 评论: 0)
Yii的Euploadify插件使用 (浏览: 19526, 评论: 0)
开发笔记记录 (浏览: 17859, 评论: 0)

4条记录访客评论

不知道你们试过两个人同时上传图片的话,响应会变乱,很严重的问题,解决了可以发到我邮箱么

Post by 杨微 on 2009, April 1, 3:08 PM 引用此文发表评论 #1

关于你们说的这个问题,我也想过。
大概因为IE的特殊性吧,即使是以tab方式打开或者以新窗口打开,COOKIE都会保存的。但firefox或许就不一样了。所以我们的程序在IE下一切正常,但在FF下就不正常。。

Post by gouki on 2009, March 11, 10:57 PM 引用此文发表评论 #2

会不会是没有把COOKIE回传回去,导致session id丢失呢?普通的POST操作是由浏览器完成的,会自动带上COOKIE回传,如果swf upload是通过flash自己构造POST的数据向服务器发送的话,我觉得是不是需要自己设置request header中的cookie呢?就跟自己写请求一样,要自己指定附带上cookie

Post by yhustc on 2009, March 11, 3:13 PM 引用此文发表评论 #3

用flalsh上传的时候除了ie的其它浏览器要加上当前cookie中的一些特殊身份标识,以提供给后台接口 表明自己当前有身份 

Post by meteoric_cry on 2009, March 11, 1:25 AM 引用此文发表评论 #4


发表评论

评论内容 (必填):