You are here

public function FileRepository::loadByUri in Drupal 10

File

core/modules/file/src/FileRepository.php, line 206

Class

FileRepository
Provides a file entity repository.

Namespace

Drupal\file

Code

public function loadByUri(string $uri) : ?FileInterface {
  $fileStorage = $this->entityTypeManager
    ->getStorage('file');

  /** @var \Drupal\file\FileInterface[] $files */
  $files = $fileStorage
    ->loadByProperties([
    'uri' => $uri,
  ]);
  if (count($files)) {
    foreach ($files as $item) {

      // Since some database servers sometimes use a case-insensitive
      // comparison by default, double check that the filename is an exact
      // match.
      if ($item
        ->getFileUri() === $uri) {
        return $item;
      }
    }
  }
  return NULL;
}