主要原因是kindeditor 中使用了swfupload ,而ff调用时,不会使用浏览器当前的cookie。
chrome也尝试过,通过切换不同的flash,会导致该情况发生。
如果flash上传不法传递cookie,则通过post该参数,并替换成原来的session即可.
http://kindeditor.net/docs/option.html#extrafileuploadparams
KindEditor.ready(function(K) {
K.create('#id', {
extraFileUploadParams : {
GDSESSION_ID : 'XXXXXXXXXXX'
}
});
});
yii 端根据session_id切换session代码
/**
* 直接识别文件类型,修改上传文件扩展,防止缩略变形
*/
class EditorController extends CController {
public function init() {
// 切换session 修复部分不支持 flash cookie的浏览器,暂时发现ff
if (isset ( $_REQUEST ['GDSESSION_ID'] ) && $_REQUEST ['GDSESSION_ID'] != Yii::app ()->session->getSessionID ()) {
Yii::app ()->session->destroy ();
Yii::app ()->session->setSessionID ( $_REQUEST ['GDSESSION_ID'] );
// Yii::app ()->session->open ();
}
}
....