rules方法中file字段指定为file类型,但同时又想指定为required,不知为何总是有问题。
array('file','file','types'=>'zip,rar,gz,gzip,bz,bz2,tar','safe'=>true,'allowEmpty'=>true,'on'=>'update'),
array('file','file','types'=>'zip,rar,gz,gzip,bz,bz2,tar','safe'=>true,'on'=>'insert'),
/*
以上两个我不知道怎么才能简化一下,需要的效果是insert的时候上传文件字段必填;
update的时候可以不填,类似于注册用户的时候密码必填,更新的时候密码留空即不改变。
*/
array('publisher, product, version, licence_key, license_type, language, category', 'required'),
/*
array('file','required','on'=>'insert'),
这里我不敢加,加了之后就总是提示我没有上传文件;
但是不加吧,它又没有红色的*提示必填,对客户有点不太友好。烦请各路大神指条明路。
*/
我在beforeSave方法里面处理上传文件 不知道思路对不对(为保证用户体验,没改名)
配置文件中 ‘upload’=‘upload/’;
$this->file=CUploadedFile::getInstance($this,'file');
if(!empty($this->file)){
$this->file->saveAs(Yii::app()->params['upload'].$this->file->name);//保存到指定的文件夹
$this->file=Yii::app()->params['upload'].$this->file->name;//把file字段设置为完整路径
$this->size=filesize($this->file);
}