Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Uploadify在yii中给出错误HTTP错误(302)_Php_Ajax_Session_Yii_Uploadify - Fatal编程技术网

Php Uploadify在yii中给出错误HTTP错误(302)

Php Uploadify在yii中给出错误HTTP错误(302),php,ajax,session,yii,uploadify,Php,Ajax,Session,Yii,Uploadify,昨天我集成了一个Yii应用程序,效果很好。但我突然发现它不起作用,而是显示errorhttperror(302)。我发现只有firefox,IE和Crome才可以 在main.php文件的下面,我写道: <?php $timestamp = time();?> $(function() { $('#file_upload').uploadify({ 'method' : 'post', 'auto' :false,

昨天我集成了一个Yii应用程序,效果很好。但我突然发现它不起作用,而是显示error
httperror(302)
。我发现只有firefox,IE和Crome才可以

在main.php文件的下面,我写道:

<?php $timestamp = time();?>
$(function() {
    $('#file_upload').uploadify({
        'method'   : 'post',
        'auto'     :false,
        'multi'    : true,
        'formData'     : {
            'timestamp' : '<?php echo $timestamp;?>',
            'token'     : '<?php echo md5('unique_salt' . $timestamp);?>'
        },
        'swf'      : '<?php echo Yii::app()->request->baseUrl; ?>/images/uploadify.swf',
        'uploader' : '<?php echo Yii::app()->createUrl('cp/project/UploadImage')?>'

    });
});

一切都很好,但突然间,我遇到了这个错误。

我已经解决了这个问题,并在这里留下了我如何修复的答案,如果有人得到任何帮助。根据uploadify的参考,我在控制器的开头写道:

function init(){

    if(isset($_POST['SESSION_ID'])){
        $session=Yii::app()->getSession();
        $session->close();
        $session->sessionID = $_POST['SESSION_ID'];
        $session->open();
    }
}
并初始化上载为:

$session_id = Yii::app()->session->sessionID;
$session_name = 'SESSION_ID';
$swf = Yii::app()->request->baseUrl.'/images/uploadify.swf';
$uploadifyImg = Yii::app()->createUrl('cp/project/UploadImage');
Yii::app()->clientScript->registerScript('uploadify', "

$(function() {
    $('#file_upload').uploadify({
        'method'   : 'post',
        'auto'     :false,
        'multi'    : true,
        'formData' : {'$session_name' : '$session_id'},
        'swf'      : '$swf',
        'uploader' : '$uploadifyImg'

    });
  });
");

面对这样的问题,这对谁是有帮助的。

302从技术上讲不是一个错误,而是一个重定向。根据过去的经验,我猜Firefox没有在Flash请求中传递会话cookie,所以Yii告诉它先授权。如果确实是这样,您需要实现类似的功能。谢谢,它帮助我解决了这个问题。我现在已修复。您应该将解决方案作为答案发布,以便其他具有相同问题的人可以从查找此帖子中获益。是@dcorder我已回答。
$session_id = Yii::app()->session->sessionID;
$session_name = 'SESSION_ID';
$swf = Yii::app()->request->baseUrl.'/images/uploadify.swf';
$uploadifyImg = Yii::app()->createUrl('cp/project/UploadImage');
Yii::app()->clientScript->registerScript('uploadify', "

$(function() {
    $('#file_upload').uploadify({
        'method'   : 'post',
        'auto'     :false,
        'multi'    : true,
        'formData' : {'$session_name' : '$session_id'},
        'swf'      : '$swf',
        'uploader' : '$uploadifyImg'

    });
  });
");