You are here

public function MimeTypeGuesser::guess in Drupal 8

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

File

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

Class

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

Namespace

Drupal\Core\File\MimeType

Code

public function guess($path) {
  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
      ->guess($path);
    if ($mime_type !== NULL) {
      return $mime_type;
    }
  }
}