$model->image=CUploadedFile::getInstance($model,'image');
if($model->image)
$model->image->saveAs(Yii::app()->basePath.'/../uploads/'.$model->image);
上传时怎么样重新设置文件名,以确保保存时文件名重复不致于被覆盖!
$model->image=CUploadedFile::getInstance($model,'image');
if($model->image)
$model->image->saveAs(Yii::app()->basePath.'/../uploads/'.$model->image);
上传时怎么样重新设置文件名,以确保保存时文件名重复不致于被覆盖!
saveAs里面的文件名自己弄个不会重复的就行了
关键是类型不好判断.
CUploadedFile::getInstance($model,‘image’)->type这里是文件类型,不是扩展名,是不是还得用switch语句列出来呢?
我知道怎么获取扩展名了CUploadedFile::getInstance($model,‘image’)->extensionName,这样就可以了,文件名我可以设置成时间戳,解决了!
$model->attributes=$_POST['UsersProfile'];
$form=CUploadedFile::getInstance($model, 'image');
if($form != null)
$model->image=$this->imageName($form->name);
//$model->image->name=$this->imagePath($model->image->name);
if($model->save())
{
if($form != null)
$form->saveAs(UsersProfile::IMAGE_PATH.$model->image);
$this->redirect(array('view','id'=>$model->id));
}
private function imageName($imageName)
{
$imageName = time().rand(1000,2000).$imageName;
return $imageName;
}
不要用数据库里存在的字段来存储CUploadedFile::getInstance($model, ‘image’);我自定义了一个参数来存储它,这样就可不不覆盖了,反正确决了,原来不怎么清楚。。。