yii CUploadfile类上传文件
1.首先在model中对保存文件名的属性限制一下上传文件的类型和大小
array('IDCardPic','file', //定义为file类型 'allowEmpty'=>false,//不允许为空 'maxSize'=>1024 * 1024 * 10,//最大为10M 'types'=>'jpg, png, gif, jpeg, bmp', //上传文件的类型 'tooLarge'=>'头像最大不超过1MB,请重新上传!', )
2.在view中
首先在form中添加:
'htmlOptions'=>array('enctype'=>'multipart/form-data')
然后呢,就可以直接用
<?php echo CHtml::activeFileField($vm, 'IDCardPic'); ?>这是上次文件的按钮<?php echo CHtml::activeFileField($vm, 'IDCardPic'); ?>
3.最后在控制器中收集上传的文件:
注意:不能用$_POST[...]来收集,因为文件上传后属性在$_FILE[...]中,所以直接用
$file=CUploadedFile::getInstance($vm,'IDCardPic');便可以收集数据,然后保存文件即可
$file->saveAs(Yii::app()->basePath.'/..'.$vm->IDCardPic); // 保存图片
自己也捣鼓了一晚上才获得如上的经验,因为刚开始对这个机制不是很熟悉,所以,,,你懂的