You are here

public function MimeTypeGuesser::guessMimeType in Drupal 10

Same name in this branch
  1. 10 core/lib/Drupal/Core/File/MimeType/MimeTypeGuesser.php \Drupal\Core\File\MimeType\MimeTypeGuesser::guessMimeType()
  2. 10 core/lib/Drupal/Core/ProxyClass/File/MimeType/MimeTypeGuesser.php \Drupal\Core\ProxyClass\File\MimeType\MimeTypeGuesser::guessMimeType()
Same name and namespace in other branches
  1. 9 core/lib/Drupal/Core/File/MimeType/MimeTypeGuesser.php \Drupal\Core\File\MimeType\MimeTypeGuesser::guessMimeType()

File

core/lib/Drupal/Core/File/MimeType/MimeTypeGuesser.php, line 52

Class

MimeTypeGuesser
Defines a MIME type guesser that also supports stream wrapper paths.

Namespace

Drupal\Core\File\MimeType

Code

public function guessMimeType(string $path) : ?string {
  if ($wrapper = $this->streamWrapperManager
    ->getViaUri($path)) {

    // Get the real path from the stream wrapper, if available. Files stored
    // in remote file systems will not have one.
    $real_path = $wrapper
      ->realpath();
    if ($real_path !== FALSE) {
      $path = $real_path;
    }
  }
  if ($this->sortedGuessers === NULL) {

    // Sort is not triggered yet.
    $this->sortedGuessers = $this
      ->sortGuessers();
  }
  foreach ($this->sortedGuessers as $guesser) {
    $mime_type = $guesser
      ->guessMimeType($path);
    if ($mime_type !== NULL) {
      return $mime_type;
    }
  }
  return NULL;
}