1. SWFUpload Flash与Yii Cookie的问题.
按照SWFUpload官方文档中的说明,
由于Flash中FileReference的Bug,导致当前浏览器中的Cookie并不会随着Flash请求一起发送,Yii无法通过Session
检测上传者的用户识别信息,SWFUpload 将提示302错误的信息,解决办法在入口文件index.php中加入
if(isset($_POST['PHPSESSID'])) $_COOKIE['PHPSESSID'] = $_POST['PHPSESSID'];
$yii = dirname(__FILE__) . '/../framework/yii.php'; ... if(isset($_POST['PHPSESSID'])) $_COOKIE['PHPSESSID'] = $_POST['PHPSESSID']; require_once($yii); Yii::createWebApplication($config)->run();
2. SWFUpload 500服务器错误原因
这个原因主要是有两个,一个是Yii 安全权限的原因,另一个就是上传的保存路径不对或处理缩略图时出错,才会出现这个错误.
如果是安全权限的问题,需要在你的控制器中加入, ajaxUploadFiles更改成你自己的文件上传方法处理
'accessControl - ajaxUploadFiles',
/** * 使用RightsFilter过滤器控制访问权限 * * @see CController::filters() */ public function filters() { return array( 'accessControl - ajaxUploadFiles', 'auth', ); }
3. SWFUpload 开发调式.
SWFUpload提供了一个 'debug'=>false 选项, 打开将在你的页面左下解出现一个调试的信息,对于开发中非常有帮助,你可以看到整个上传过程的信息, 在Yii 控制器方法使用echo 输出到这个Swfupload控制台.
转载请保留原始出处: IT快讯网 | 原文地址: 关于Yii SWFUpload多文件上传的常见问题