【问题标题】:move_uploaded_file() Unable to move using yii frameworkmove_uploaded_file() 无法使用 yii 框架移动
【发布时间】:2013-05-03 14:02:16
【问题描述】:

出现此错误时,我正在尝试使用 yii 框架上传文件

move_uploaded_file() [function.move-uploaded-file]:无法将 '/tmp/phpLEdRdu' 移动到 'http://wmtunisia.com/tamtamtravel.tn/upload/2013-05-03entry_3.jpg'

这就是我在控制器中所做的事情

public function actionCreate()

{

    $model=new Voitures;

    if(isset($_POST['Voitures']))

    {
        $model->attributes=$_POST['Voitures'];
        $model->image=CUploadedFile::getInstance($model,'image');

        if($model->validate())

        {

            if(!empty($model->image)){

                $rep = Yii::app()->params['webroot'].'upload/';



                $model->image->saveAs($rep.date('Y-m-d').$model->image);


                $model->image=date('Y-m-d').$model->image;

            }

            $model->description= CHtml::encode($_POST['Voitures']['description']);
            $model->save();

            Yii::app()->user->setFlash('save',"La voiture a été enregistrée avec succes!");

            $this->redirect(array('admin'));

        }

    }

有人可以帮忙吗?

【问题讨论】:

    标签: frameworks yii


    【解决方案1】:

    在您的情况下,Yii::app()->params['webroot'] 等于什么?

    根据错误文本,它指的是URL,但它必须是服务器上的路径https://github.com/yiisoft/yii/blob/master/framework/web/CUploadedFile.php#L188

    尝试改用Yii::getPathOfAlias('webroot')

    【讨论】:

    • 问题是“Yii::app()->params['webroot']”返回我的webroot路径:wmtunisia.com/tamtamtravel.tn/upload
    • 根据错误信息,Yii::app()->params['webroot']wmtunisia.com/tamtamtravel.tn/upload。但是...它应该是服务器路径(不是 url),类似于 /var/www/.../host/upload
    • 重新配置params['webroot']或使用Yii::getPathOfAlias('webroot')
    • 我尝试了 Yii::getPathOfAlias('webroot') 并且没有出现这样的文件或目录的错误知道你是否将别名修复到 params 文件或控制器中?
    • php 错误不是说哪个“文件或目录”不存在吗?你应该看到生成的字符串(路径)。 Yii::getPathOfAlias('webroot') 返回不带斜杠的路径(/var/www/.../host/upload), but this line expects $rep = Yii::app()->params['webroot'].'upload/';` 看看它(最后一个斜杠)。所以,正确的行是$rep = Yii::getPathOfAlias('webroot').'/upload/';
    【解决方案2】:

    这是一个很好的文件上传示例:

    http://www.yiiframework.com/wiki/2/how-to-upload-a-file-using-a-model/

    首先声明一个属性来存储模型类中的文件名(表单模型或活动记录模型)。还要为此属性声明一个文件验证规则,以确保上传的文件具有特定的扩展名。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-28
      • 1970-01-01
      • 1970-01-01
      • 2013-01-29
      • 1970-01-01
      • 2017-09-11
      • 2013-08-05
      相关资源
      最近更新 更多