[转]使用Yii CUploadedFile上传文件(图片)

转载自: http://hi.baidu.com/done_gone/blog/item/6e1ffc0d6ff23795d1581bf4.html

这里不显示,model和view的代码,或者明天补上。

控制器代码:

$model=new Albums;

 

if(isset($_POST['Albums']))

{

$model->attributes = $_POST['Albums'];

 

$model->album_image = CUploadedFile::getInstance($model,'album_image');

//album_image 是字段来的

                        if($model->album_image)

                        {

                            $newName = date('Ymd-His').'.'.$model->album_image->extensionName;

                        }

 

                        $root = YiiBase::getPathOfAlias('webroot').Yii::app()->getBaseUrl();

//$_SERVER['DOCUMENT_ROOT'] 和 YiiBase::getPathOfAlias('webroot') 一样的,是绝对路径。

                        $folder = '/upload/albums/';

 

                        if(!is_dir($root.$folder)){

                            if(!mkdir($root.$folder, 0, true))

                            {

                                throw new Exception('创造文件夹失败...');

                            }

                        }

                        if($model->album_image->saveAs($root.$folder.$newName)){

//保存图片

                            $model->album_image = Yii::app()->getBaseUrl().$folder.$newName;

//这里还是重新给album_image字段,赋值。

                            if($model->save()){

//保存数据

                                    $this->redirect(array('view','id'=>$model->album_id));

                            }

                        }

}

$this->render('create',array(

'model'=>$model,

));

posted on 2011-07-27 04:18  DavidYanXW  阅读(1028)  评论(0编辑  收藏  举报