【问题标题】:error yii2 upload Call to a member function saveAs() on null错误 yii2 upload 调用成员函数 saveAs() on null
【发布时间】:2017-08-27 07:17:49
【问题描述】:

我是新的程序员世界,请大家帮忙, 我有错误“在 null 上调用成员函数 saveAs()”

模型中的此代码

[['file'],'file'],
  • 控制器中的这段代码

                $docfileload = $model->docname;
            $model->file = UploadedFile::getinstance($model,'file');
            $model->file->saveAs('uploads/'.$docfileload.'.'.$model->file->extension);
            $model->save();
    
            //save path in db
            $model->docfile = 'uploads/'.$docfileload.'.'.$model->file->extension;
    

_form 中的这段代码

    <?= $form->field($model,'file')->fileinput(); ?>

在我使用 getInstanceByName 之后,就像 @bluehipy 告诉我的那样,我对图片有了新的看法

enter image description here

【问题讨论】:

    标签: php yii yii2


    【解决方案1】:

    试试这个:

        $model->file=UploadedFile::getInstance($model,'file');  
        $model->pic=$model->file->extension; // pic is a field in database varchar(20)  
        $model->save(false) ;
    
        $ImageName=$model->id;
        if (!file_exists('uploads/'.$ImageName)) {
        mkdir('uploads/'.$ImageName, 0777, true);
            }   
        $model->file->saveAs( 'uploads/'.$ImageName.'/'.$ImageName.'.'.$model-
        >file->extension );
    

    `

    【讨论】:

      【解决方案2】:

      UploadedFile::getinstance 返回文件的array。使用getInstanceByNameUploadedFile::getinstance($model, 'file')[0]

      【讨论】:

      • 我尝试使用 getInstanceByName 但出现新消息错误“isset 中的偏移类型非法或为空”
      • @Abdul-FattahEl-Hamali 在哪里?什么线路?
      • 公共静态函数 getInstanceByName($name) { $files = self::loadFiles();返回 isset($files[$name]) ?新静态($files[$name]):空; //停在这一行 }
      • 返回 isset($files[$name]) ?新静态($files[$name]) : null;
      • @Abdul-FattahEl-Hamali 更新您当前的代码,以便我可以准确地看到您的上下文。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-06
      • 2020-11-19
      • 2020-01-19
      相关资源
      最近更新 更多