Php Uploadify在yii中给出错误HTTP错误(302)
昨天我集成了一个Yii应用程序,效果很好。但我突然发现它不起作用,而是显示errorPhp 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,
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'
});
});
");