作者:手机用户2602905767 | 来源:互联网 | 2013-06-07 16:16
首先在模型类声明一个属性来储存文件名称(formmodel或activerecordmodel均可)。同样声明一个文件验证规则,以确保被上传文件指定的扩展名。
首先在模型类声明一个属性来储存文件名称(form model或active record model均可)。同样声明一个文件验证规则,以确保被上传文件指定的扩展名。
class Item extends CActiveRecord { public $image; // ... other attributes public function rules() { return array( array('image', 'file', 'types'=>'jpg, gif, png'), ); } }
然后,在控制器类定义一个action方法收集用户提交的数据。
class ItemController extends CController { public function actionCreate() { $model=new Item; if(isset($_POST['Item'])) { $model->attributes=$_POST['Item']; $model->image=CUploadedFile::getInstance($model,'image'); if($model->save()) { $model->image->saveAs('path/to/localFile'); // redirect to success page } } $this->render('create', array('model'=>$model)); } }
最后,创建action视图并生成一个上传的field。
echo CHtml::form('','post',array('enctype'=>'multipart/form-data')); ?> ...
php echo CHtml::activeFileField($model, 'image'); ?> ...
php echo CHtml::endForm(); ?>