function file_validate_extensions

Same name in other branches
  1. 7.x includes/file.inc \file_validate_extensions()
  2. 9 core/modules/file/file.module \file_validate_extensions()
  3. 10 core/modules/file/file.module \file_validate_extensions()

Checks that the filename ends with an allowed extension.

Parameters

\Drupal\file\FileInterface $file: A file entity.

string $extensions: A string with a space separated list of allowed extensions.

Return value

array An empty array if the file extension is allowed or an array containing an error message if it's not.

See also

hook_file_validate()

4 calls to file_validate_extensions()
FileUploadResource::prepareFilename in core/modules/file/src/Plugin/rest/resource/FileUploadResource.php
Prepares the filename to strip out any malicious extensions.
TemporaryJsonapiFileFieldUploader::prepareFilename in core/modules/jsonapi/src/Controller/TemporaryJsonapiFileFieldUploader.php
Prepares the filename to strip out any malicious extensions.
ValidatorTest::testFileValidateExtensions in core/modules/file/tests/src/Kernel/ValidatorTest.php
Test the file_validate_extensions() function.
_file_save_upload_single in core/modules/file/file.module
Saves a file upload to a new location.

File

core/modules/file/file.module, line 383

Code

function file_validate_extensions(FileInterface $file, $extensions) {
    $errors = [];
    $regex = '/\\.(' . preg_replace('/ +/', '|', preg_quote($extensions)) . ')$/i';
    if (!preg_match($regex, $file->getFilename())) {
        $errors[] = t('Only files with the following extensions are allowed: %files-allowed.', [
            '%files-allowed' => $extensions,
        ]);
    }
    return $errors;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.