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

时间:2014-04-02 14:19:52

标签: php image yii

我将图像保存到/ 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,
    ));
}

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

提前谢谢你......

1 个答案:

答案 0 :(得分:1)

试试这个:

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
    }
}