Yii多文件上传处理

在控制器中你需要调用 只有文件上传字段的 myFileHandler 方法

public function actionIndex(){
    ........
    ........
    $model = $this->myFileHandler($model, array('logo','emailus_img','emailus_img_hover','more_img','more_img_hover','gomo_logo','mobile_phone_img','animate_on_mobile_img','animate_above_text_img','animate_under_text_img','bottom_right_img'));
    .......
    .......
}
public function myFileHandler($model, $imgFieldNameArr){
    foreach($imgFieldNameArr as $attribute){
        $instance = CUploadedFile::getInstance($model, $attribute);
        if($instance){
            $fullImgName = time().'_'.$attribute.'.'.$instance->getExtensionName();   
            $fullImgSource = Yii::getPathOfAlias('webroot').'/media/images/'.$fullImgName;    
            $instance->saveAs($fullImgSource);    
            $model->$attribute = $fullImgName;
        }
    }
    return $model; //return model with updated file path
}

希望这个小技巧将帮助您.

发表评论