Flash和会话

时间:2010-08-25 09:17:12

标签: php flash session kohana

首先,我正在使用KohanaPHP Framework。

我已经成功实现了SWFUpload,工作得非常好。我只有一个问题。

主要问题是我需要允许用户在提交表单之前上传附件。所以我决定使用Session var来存储附件数组。不幸的是,如果我使用HTML上传(基于iframe),它会正常工作,但是当我使用SWFUpload时却没有。

我试图谷歌,但没有任何有效的解决方案。有什么想法吗?

更新&溶液
基本上,我不知道Flash和会话有问题。提供相同的会话ID对我没有帮助,因为我没有记录。无论如何,我得到了解决同样问题的人的解决方案。

我创建了一个项目的唯一ID。我将文件上传到临时目录,然后......我正在扫描这个目录,我正在将上传的文件名添加到会话中。

汤姆

1 个答案:

答案 0 :(得分:2)

您需要的是手动将会话ID传递给SWFUpload。简而言之,您可以在模板中执行此操作:

<script type="text/javascript">
var PHPSESSID = <?php echo json_encode(session_id()); ?>;
</script>

然后使用SWFUpload代码执行此操作:

var settings = {
   post_params: {"PHPSESSID" : PHPSESSID},
   /* the rest of the settings */
};

最后,在您的应用程序代码之前调用session_start,您需要这样做(通常只在您的index.php或您使用的任何引导程序中):

// Restore session that came from SWFUpload
if(isset($_REQUEST['PHPSESSID']))
    session_id($_REQUEST['PHPSESSID']);

此session_start()将使用正确的会话,即使对于SWFUpload请求也是如此。