0

我正在使用 swf-upload 来处理我正在处理的网站上的文件上传。

问题在于捕获函数,称为 swf-upload.php。如果我直接访问它所在的 URL,它可以正常工作,它会正确读取启动会话并获取用户权限,但是当网页使用 ajax 回调调用它时,它声称会话是空的。

我正在使用错误处理程序和输出日志记录的组合来找出它在做什么,并且直接访问和 ajax 访问之间的代码路径完全没有区别。

有什么想法吗?

4

2 回答 2

3

这是 swfupload 中的一个已知问题,您需要将会话 ID 传递给 swfupload 构造函数,然后使用您传递的会话 ID 在远程文件中重新创建显式重新启动此会话,如下所示:

 // in your javascript file 
 swfu = new SWFUpload({
  upload_url: "http://<?=$_SERVER['HTTP_HOST']?>/scripts/swfupload2/upload.php",
  post_params: {"PHPSESSID": "<?=session_id()?>"}
 }

 // in your PHP file
 if (isset($_POST["PHPSESSID"])) {
  session_id($_POST["PHPSESSID"]);
 }
于 2009-12-14T15:52:43.780 回答
1

也许您可以通过 ajax url 中的 PHPSESSID 显式传递会话 ID?您可以使用 session_id() 函数http://pl2.php.net/manual/en/function.session-id.php阅读它

于 2009-12-14T15:44:41.880 回答