Yii 框架:如何在 /image 文件夹中保存具有唯一 ID 的图像


yii framework: how to save image with unique id in the /image folder?

我正在将图像保存到/image 文件夹中,并将图像的图像保存在数据库中。

但问题是我正在为图像创建唯一的 ID 名称,通过该名称,它在数据库中通过 uniqueid 函数将图像名称保存为新生成的名称,但在/image 文件夹中,它以原始名称保存图像。

控制器代码是——

public function actionCreate()
{
    $model=new Add;
    //$model->createtime = strtotime('Now');
    //$model->createtime=time();
    // Uncomment the following line if AJAX validation is needed
    // $this->performAjaxValidation($model);
    if(isset($_POST['Add']))
    {
        $model->attributes=$_POST['Add'];
        $model->createtime=date("d m y G:i:s ");
        $model->username=Yii::app()->user->name;
        $model->image=CUploadedFile::getInstance($model,'image');
        if($model->save())
        {
            if($model->image !== null)
                    {
                        $image=CUploadedFile::getInstance($model,'image');
                        $model->image = uniqid() . '.jpg';
                        $image->saveAs( Yii::getPathOfAlias('webroot.images') .  '/'  . '.jpg');
                    }
            $this->redirect(array('view','id'=>$model->addid));
        }
    }
    $this->render('create',array(
        'model'=>$model,
    ));
}

代码中有什么问题?? 我感到困惑,无法解决问题

提前谢谢你...

试试这个:

if(isset($_POST['Add']))
{
    $model->attributes=$_POST['Add'];
    $model->createtime=date("d m y G:i:s ");
    $model->username=Yii::app()->user->name;
    $model->imageFile=CUploadedFile::getInstance($model,'imageFile');
    if ($model->imageFile) 
    {
        $model->image = uniqid() . '.jpg';
        if (!$model->imageFile->saveAs(Yii::getPathOfAlias('webroot.images') . '/' . $model->image))
            $model->addError('image', 'File saving error');
    }
    if(!$model->hasErrors() && $model->save())
    {
        $this->redirect(array('view','id'=>$model->addid));
    } else {
        // here you can delete saved image if necessary
    }
}