会话和上传

2022-08-30 20:57:19

我正在使用uploadify,我无法在我的php文件中设置会话,我的脚本看起来像这样:

    $("#uploadify").uploadify({
        'uploader'       : '/extra/flash/uploadify.swf',
        'script'         : '/admin/uploads/artistsphotos',
        'scriptData'     : {'PHPSESSID' : '<?= session_id(); ?>'},
        'cancelImg'      : '/images/cancel.png',
        'folder'         : '/img/artists',
        'queueID'        : 'fileQueue',
        'auto'           : false,
        'multi'          : true,
        'onComplete'     : function(a, b, c, d, e){

        },  
        'onAllComplete': function(event,data){
            $bla = $('#art').find(':selected',this);
            $fi  = $bla.val();
             $.ajax({
               type: "POST",
               url: "/admin/uploads/artistsphotosupload",
               data: "artist="+$fi,
               success: function(msg){
                 console.log(msg);
               }
             });
     }
});

在php中,如果我尝试:

$_SESSION['name'] = 'something';

我无法在另一个文件中访问它,并且我有session_start();已激活 任何解决方案?


答案 1

您无法解决此问题,因为 uploadify 具有自己的会话 ID,该 ID 由 Flash 播放器创建。换句话说,Flash播放器以新用户身份访问uploadify脚本并获得新会话。解决此问题的唯一方法是将当前页面session_id通过post传递到uploadify脚本。


答案 2

通常不会从 POST 读取会话 ID。你可以这样做:

$_COOKIE['PHPSESSID'] = $_POST['PHPSESSID'];
session_start();

推荐