开发者

Flash and Sessions

First of all, I'm using KohanaPHP Framework.

I've impletemented SWFUpload successfully, working quite nice. I'm having only one issue.

The main problem is I need to allow users 开发者_如何学Goto upload attachments before submitting form. So I decided to use Session var to store attachments array. Unfortunately, it is working inly if I use HTML upload (based on iframe), but not when I use SWFUpload.

I tried to Google for that, but without any working solution. Any ideas?

Update & Solution

Basically, I didn't know there's an issue with Flash and sessions. Providing the same session id didn't helped me because I got unlogged. Anyway I got a solution for people with the same issue.

I created an unique ID of an item. I upload files to temporary directory, then... I'm scanning this directory and I'm adding uploaded filenames to session.

Tom


What you need to is pass the session id to SWFUpload by hand. In a nutshell, you do this in your template:

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

Then you do this with your SWFUpload code:

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

And finally, in your application code, before you call session_start, you need to do this (usually just in your index.php or whatever bootstrap you use):

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

After this session_start() will use the correct session even for SWFUpload requests.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜