2013-12-16 11:29:57 5119次浏览 1条回答 0 悬赏 10 金钱

写了一个yii上传功能,测试不成功,来请教下:

模型里面是这样写的:

public function rules()
    {
        return array(
            array('image','file','types'=>'jpg,gif,png'),
        );
    }


控制器里面是这样写的:

public function actionCreate()
    {
        $model=new Message;

        if(isset($_POST['Message']))
        {

            $model->attributes=$_POST['Message'];
            $file=CUploadedFile::getInstance($model,'image'); //获取表单名为filename的上传信息
            $filename=$file->getName();          //获取文件名                                                                         
            $filesize=$file->getSize();                 //获取文件大小                                                                      
            $filetype=$file->getType();                //获取文件类型                                                                   
            $model->image=$filename;           //数据库中要存放文件名                                               
            //$filename1=iconv("utf-8", "gb2312", $filename);//这里是处理中文的问题,非中文不需要   
            //$uploadfile="upload_image";                                                                          
            //$file->saveAs($uploadfile,true);
            //$model->attributes=$_POST['Message'];
            $model->image = $file;
            if($model->image)
            {
                $newName = time().'.'.$model->image->extensionName;
                $model->image = $newName;
            }
            $file->saveAs('uplode_img',true);
            if($model->save())
            {
                echo "ok";exit();
            }
        }
        
        $this->render('create',array(
            'model'=>$model,    
        ));
    }

视图里面这样写的:

    <div class="row">
        <?php echo $form->labelEx($model,'image'); ?>
        <?php echo CHtml::activeFileField($model,'image'); ?>
        <?php echo $form->error($model,'image'); ?>
    </div>


我上传图片的文件夹是uplode_img,它和protected是同级的。

现在问题是我图片上传之后没有保存到uplode_img里面。

请各位前辈帮我看下了,谢了。

最佳答案

  • ttyangz 发布于 2013-12-16 14:04 举报

    if ($uploadedFile != null) {
    $uploadedFile->saveAs(Yii::app()->basePath . '/../images/' . $fileName); //图片上传路径
    }

    Yii::app()->basePath是到protected目录,需要加个..返回到上层目录.

    1 条回复
    回复于 2013-12-16 16:27 回复

    谢了

    没有找到数据。
您需要登录后才可以回答。登录 | 立即注册
leo007ok
助理

leo007ok

注册时间:2013-12-03
最后登录:2015-01-16
在线时长:11小时12分
  • 粉丝1
  • 金钱0
  • 威望0
  • 积分110

热门问题