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


posted on 2011-09-17 09:13  darwinwen  阅读(1357)  评论(0编辑  收藏  举报