[转]使用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,
));