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多文件上传的常见问题