framework/validators/FileValidator.php
protected function validateValue($value)
    {
        if (!$value instanceof UploadedFile || $value->error == UPLOAD_ERR_NO_FILE) {
            return [$this->uploadRequired, []];
        }

        switch ($value->error) {
            case UPLOAD_ERR_OK:
                if ($this->maxSize !== null && $value->size > $this->getSizeLimit()) {
                    return [
                        $this->tooBig,
                        [
                            'file' => $value->name,
                            'limit' => $this->getSizeLimit(),
                            'formattedLimit' => Yii::$app->formatter->asShortSize($this->getSizeLimit()),
                        ],
                    ];
                } elseif ($this->minSize !== null && $value->size < $this->minSize) {
                    return [
                        $this->tooSmall,
                        [
                            'file' => $value->name,
                            'limit' => $this->minSize,
                            'formattedLimit' => Yii::$app->formatter->asShortSize($this->minSize),
                        ],
                    ];
                } elseif (!empty($this->extensions) && !$this->validateExtension($value)) {
                    return [$this->wrongExtension, ['file' => $value->name, 'extensions' => implode(', ', $this->extensions)]];
                } elseif (!empty($this->mimeTypes) && !$this->validateMimeType($value)) {
                    return [$this->wrongMimeType, ['file' => $value->name, 'mimeTypes' => implode(', ', $this->mimeTypes)]];
                }

                return null;
            case UPLOAD_ERR_INI_SIZE:
            case UPLOAD_ERR_FORM_SIZE:
                return [$this->tooBig, [
                    'file' => $value->name,
                    'limit' => $this->getSizeLimit(),
                    'formattedLimit' => Yii::$app->formatter->asShortSize($this->getSizeLimit()),
                ]];
            case UPLOAD_ERR_PARTIAL:
                Yii::warning('File was only partially uploaded: ' . $value->name, __METHOD__);
                break;
            case UPLOAD_ERR_NO_TMP_DIR:
                Yii::warning('Missing the temporary folder to store the uploaded file: ' . $value->name, __METHOD__);
                break;
            case UPLOAD_ERR_CANT_WRITE:
                Yii::warning('Failed to write the uploaded file to disk: ' . $value->name, __METHOD__);
                break;
            case UPLOAD_ERR_EXTENSION:
                Yii::warning('File upload was stopped by some PHP extension: ' . $value->name, __METHOD__);
                break;
            default:
                break;
        }

        return [$this->message, []];
    }
protected function validateValue($value)
    {
        if (!$value instanceof UploadedFile || $value->error == UPLOAD_ERR_NO_FILE) {
            return [$this->uploadRequired, []];
        }

        switch ($value->error) {
            case UPLOAD_ERR_OK:
                if ($this->maxSize !== null && $value->size > $this->getSizeLimit()) {
                    return [
                        $this->tooBig,
                        [
                            'file' => $value->name,
                            'limit' => $this->getSizeLimit(),
                            'formattedLimit' => Yii::$app->formatter->asShortSize($this->getSizeLimit()),
                        ],
                    ];
                } elseif ($this->minSize !== null && $value->size < $this->minSize) {
                    return [
                        $this->tooSmall,
                        [
                            'file' => $value->name,
                            'limit' => $this->minSize,
                            'formattedLimit' => Yii::$app->formatter->asShortSize($this->minSize),
                        ],
                    ];
                } elseif (!empty($this->extensions) && !$this->validateExtension($value)) {
                    return [$this->wrongExtension, ['file' => $value->name, 'extensions' => implode(', ', $this->extensions)]];
                } elseif (!empty($this->mimeTypes) && !$this->validateMimeType($value)) {
                    return [$this->wrongMimeType, ['file' => $value->name, 'mimeTypes' => implode(', ', $this->mimeTypes)]];
                }

                return null;
            case UPLOAD_ERR_INI_SIZE:
            case UPLOAD_ERR_FORM_SIZE:
                return [$this->tooBig, [
                    'file' => $value->name,
                    'limit' => $this->getSizeLimit(),
                    'formattedLimit' => Yii::$app->formatter->asShortSize($this->getSizeLimit()),
                ]];
            case UPLOAD_ERR_PARTIAL:
                Yii::warning('File was only partially uploaded: ' . $value->name, __METHOD__);
                break;
            case UPLOAD_ERR_NO_TMP_DIR:
                Yii::warning('Missing the temporary folder to store the uploaded file: ' . $value->name, __METHOD__);
                break;
            case UPLOAD_ERR_CANT_WRITE:
                Yii::warning('Failed to write the uploaded file to disk: ' . $value->name, __METHOD__);
                break;
            case UPLOAD_ERR_EXTENSION:
                Yii::warning('File upload was stopped by some PHP extension: ' . $value->name, __METHOD__);
                break;
            default:
                break;
        }

        return [$this->message, []];
    }
protected function validateValue ( $ value ) { if ( ! $ value instanceof UploadedFile || $ value -> error == UPLOAD_ERR_NO_FILE ) { return [ $ this -> uploadRequired , [ ] ] ; } switch ( $ value -> error ) { case UPLOAD_ERR_OK : if ( $ this -> maxSize !== null && $ value -> size > $ this -> getSizeLimit ( ) ) { return [ $ this -> tooBig , [ 'file' => $ value -> name , 'limit' => $ this -> getSizeLimit ( ) , 'formattedLimit' => Yii :: $ app -> formatter -> asShortSize ( $ this -> getSizeLimit ( ) ) , ] , ] ; } elseif ( $ this -> minSize !== null && $ value -> size < $ this -> minSize ) { return [ $ this -> tooSmall , [ 'file' => $ value -> name , 'limit' => $ this -> minSize , 'formattedLimit' => Yii :: $ app -> formatter -> asShortSize ( $ this -> minSize ) , ] , ] ; } elseif ( ! empty ( $ this -> extensions ) && ! $ this -> validateExtension ( $ value ) ) { return [ $ this -> wrongExtension , [ 'file' => $ value -> name , 'extensions' => implode ( ', ' , $ this -> extensions ) ] ] ; } elseif ( ! empty ( $ this -> mimeTypes ) && ! $ this -> validateMimeType ( $ value ) ) { return [ $ this -> wrongMimeType , [ 'file' => $ value -> name , 'mimeTypes' => implode ( ', ' , $ this -> mimeTypes ) ] ] ; } return null ; case UPLOAD_ERR_INI_SIZE : case UPLOAD_ERR_FORM_SIZE : return [ $ this -> tooBig , [ 'file' => $ value -> name , 'limit' => $ this -> getSizeLimit ( ) , 'formattedLimit' => Yii :: $ app -> formatter -> asShortSize ( $ this -> getSizeLimit ( ) ) , ] ] ; case UPLOAD_ERR_PARTIAL : Yii :: warning ( 'File was only partially uploaded: ' . $ value -> name , __METHOD__ ) ; break ; case UPLOAD_ERR_NO_TMP_DIR : Yii :: warning ( 'Missing the temporary folder to store the uploaded file: ' . $ value -> name , __METHOD__ ) ; break ; case UPLOAD_ERR_CANT_WRITE : Yii :: warning ( 'Failed to write the uploaded file to disk: ' . $ value -> name , __METHOD__ ) ; break ; case UPLOAD_ERR_EXTENSION : Yii :: warning ( 'File upload was stopped by some PHP extension: ' . $ value -> name , __METHOD__ ) ; break ; default : break ; } return [ $ this -> message , [ ] ] ; }
{@inheritdoc}
{