主要原因是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 (); } } ....