PendalF89/yii2-filemanager upload error. (Call to a member function saveAs() on null)

getting

Call to a member function saveAs() on null

error from ajax request while uploading image via filemanager.

Config:

...
'modules' => [
    'site' => [
        'class' => 'app\modules\site\Module',
    ],
    'user' => [
        'class' => 'app\modules\user\Module',
        'controllerNamespace' => 'app\modules\user\controllers\frontend',
        'viewPath' => '@app/modules/user/views/frontend',
    ],
    'admin' => [
        'class' => 'app\modules\admin\Module',
        'layout' => '@app/views/layouts/admin',
        'modules' => [
            'user' => [
                'class' => 'app\modules\user\Module',
                'controllerNamespace' => 'app\modules\user\controllers\backend',
                'viewPath' => '@app/modules/user/views/backend',
            ],
            'pages' => [
                'class' => 'bupy7\pages\Module',
                'controllerNamespace' => 'bupy7\pages\controllers\backend',
                'controllerMap' => [
                    'manager' => [
                        'class' => 'bupy7\pages\controllers\backend\ManagerController',
                    ],
                ],
            ],
            'gallery' => [
                'class' => 'sadovojav\gallery\Module',
                'basePath' => '@webroot/galleries',
            ],
            'filemanager' => [
                'class' => 'pendalf89\filemanager\Module',
                // Upload routes
                'routes' => [
                    // Base absolute path to web directory
                    'baseUrl' => '',
                    // Base web directory url
                    'basePath' => '@webroot',
                    // Path for uploaded files in web directory
                    'uploadPath' => 'uploads',
                ],
                // Thumbnails info
                'thumbs' => [
                    'small' => [
                        'name' => 'Small',
                        'size' => [100, 100],
                    ],
                    'medium' => [
                        'name' => 'Medium',
                        'size' => [300, 200],
                    ],
                    'large' => [
                        'name' => 'Big',
                        'size' => [500, 400],
                    ],
                ],
            ],
        ],
    ],
...

actionUpload() in Controller

public function actionUpload()
{

    $model = new Mediafile();
    $routes = $this->module->routes;
    $rename = $this->module->rename;

    $model->saveUploadedFile($routes, $rename);

    Yii::$app->response->format = Response::FORMAT_JSON;

    $tagIds = Yii::$app->request->post('tagIds');

    if ($tagIds !== 'undefined') {
        $model->setTagIds(explode(',', $tagIds));
    }

    $bundle = FilemanagerAsset::register($this->view);

    if ($model->isImage()) {
        $model->createThumbs($routes, $this->module->thumbs);
    }

    $response['files'][] = [
        'url'           => $model->url,
        'thumbnailUrl'  => $model->getDefaultThumbUrl($bundle->baseUrl),
        'name'          => $model->filename,
        'type'          => $model->type,
        'size'          => $model->file->size,
        'deleteUrl'     => Url::to(['file/delete', 'id' => $model->id]),
        'deleteType'    => 'POST',
    ];

    return $response;
}

Checked in the model,

$this->file = UploadedFile::getInstance($this, 'file');

in saveUploadedFile() returns null instead of object.

The problem is that the function saveUploadedFile() is been executed, the file is saved and the record is created in the database, but it returns error.

Upvotes: 1

Views: 193

Answers (0)

Related Questions