在使用swfupload上传文件的时候,老提示302。大概知道原因是因为验证失败自动跳转了。

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。)

特别感谢:妖怪、膘叔、觉醒。
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]