vendor/2amigos/yii2-file-upload-widget/src/actions/FileUploadAction.php
/**
     * @inheritdoc
     *
     * @return array
     * @throws HttpException
     * @throws NotFoundHttpException
     */
@inheritdoc
@return array
@throws HttpException
@throws NotFoundHttpException
@inheritdoc @return array @throws HttpException @throws NotFoundHttpException
public function run()
    {
        $ownerId = Yii::$app->request->get($this->ownerIdParamName);
        if (!$ownerId) {
            throw new NotFoundHttpException(Yii::t('fileupload', 'Page not found'));
        }
        $model = new $this->className();
        $model->{$this->fileAttributeName} = UploadedFile::getInstance($model, $this->uploadAttributeName);
        if (isset($model->{$this->fileAttributeName}) && $model->validate($this->{$this->fileAttributeName})) {
            Yii::$app->response->getHeaders()->set('Vary', 'Accept');
            Yii::$app->response->format = Response::FORMAT_JSON;
            $response = [];
            $filePath = null;
            $transaction = ActiveRecord::getDb()->beginTransaction();
            try {
                $this->upload($model);
                $deleteRoute = $this->deleteUrlRoute + [$this->deleteIdParamName => $model->id];
                $response['files'][] = [
                    'name' => $model->{$this->fileAttributeName}->name,
                    'type' => $model->{$this->fileAttributeName}->type,
                    'size' => $model->{$this->fileAttributeName}->size,
                    'url' => $model->{$this->urlAttributeName},
                    'thumbnailUrl' => $model->{$this->thumbnailUrlAttributeName},
                    'deleteUrl' => Url::to($deleteRoute),
                    'deleteType' => 'POST'
                ];
                $this->link($ownerId, $model->id);
                $transaction->commit();
            } catch (Exception $e) {
                $transaction->rollBack();
                $response[] = [
                    'error' => Yii::t(
                        'fileupload',
                        'Unable to save picture: `{errorMessage}`',
                        ['errorMessage' => $e->getMessage()]
                    ),
                ];
                @unlink($model->{$this->fileAttributeName}->tempName);
            }
        } else {
            if ($model->hasErrors([$this->fileAttributeName])) {
                $response[] = ['errors' => $this->getModelErrors($model)];
            } else {
                throw new HttpException(500, Yii::t('fileupload', 'Could not upload file.'));
            }
        }
        return $response;
    }
public function run ( ) { $ ownerId = Yii :: $ app -> request -> get ( $ this -> ownerIdParamName ) ; if ( ! $ ownerId ) { throw new NotFoundHttpException ( Yii :: t ( 'fileupload' , 'Page not found' ) ) ; } $ model = new $ this -> className ( ) ; $ model -> { $ this -> fileAttributeName } = UploadedFile :: getInstance ( $ model , $ this -> uploadAttributeName ) ; if ( isset ( $ model -> { $ this -> fileAttributeName } ) && $ model -> validate ( $ this -> { $ this -> fileAttributeName } ) ) { Yii :: $ app -> response -> getHeaders ( ) -> set ( 'Vary' , 'Accept' ) ; Yii :: $ app -> response -> format = Response :: FORMAT_JSON ; $ response = [ ] ; $ filePath = null ; $ transaction = ActiveRecord :: getDb ( ) -> beginTransaction ( ) ; try { $ this -> upload ( $ model ) ; $ deleteRoute = $ this -> deleteUrlRoute + [ $ this -> deleteIdParamName => $ model -> id ] ; $ response [ 'files' ] [ ] = [ 'name' => $ model -> { $ this -> fileAttributeName } -> name , 'type' => $ model -> { $ this -> fileAttributeName } -> type , 'size' => $ model -> { $ this -> fileAttributeName } -> size , 'url' => $ model -> { $ this -> urlAttributeName } , 'thumbnailUrl' => $ model -> { $ this -> thumbnailUrlAttributeName } , 'deleteUrl' => Url :: to ( $ deleteRoute ) , 'deleteType' => 'POST' ] ; $ this -> link ( $ ownerId , $ model -> id ) ; $ transaction -> commit ( ) ; } catch ( Exception $ e ) { $ transaction -> rollBack ( ) ; $ response [ ] = [ 'error' => Yii :: t ( 'fileupload' , 'Unable to save picture: `{errorMessage}`' , [ 'errorMessage' => $ e -> getMessage ( ) ] ) , ] ; @ unlink ( $ model -> { $ this -> fileAttributeName } -> tempName ) ; } } else { if ( $ model -> hasErrors ( [ $ this -> fileAttributeName ] ) ) { $ response [ ] = [ 'errors' => $ this -> getModelErrors ( $ model ) ] ; } else { throw new HttpException ( 500 , Yii :: t ( 'fileupload' , 'Could not upload file.' ) ) ; } } return $ response ; }
@inheritdoc
 @return array
 @throws HttpException
 @throws NotFoundHttpException
@inheritdoc @return array @throws HttpException @throws NotFoundHttpException
/** @var ActiveRecord $model */