首先,我正在使用KohanaPHP Framework。
我已经成功实现了SWFUpload,工作得非常好。我只有一个问题。
主要问题是我需要允许用户在提交表单之前上传附件。所以我决定使用Session var来存储附件数组。不幸的是,如果我使用HTML上传(基于iframe),它会正常工作,但是当我使用SWFUpload时却没有。
我试图谷歌,但没有任何有效的解决方案。有什么想法吗?
更新&溶液
基本上,我不知道Flash和会话有问题。提供相同的会话ID对我没有帮助,因为我没有记录。无论如何,我得到了解决同样问题的人的解决方案。
我创建了一个项目的唯一ID。我将文件上传到临时目录,然后......我正在扫描这个目录,我正在将上传的文件名添加到会话中。
汤姆
答案 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请求也是如此。