public function FileBinaryMimeTypeGuesser::guess

Guesses the mime type of the file with the given path.

Parameters

string $path The path to the file:

Return value

string The mime type or NULL, if none could be guessed

Throws

FileNotFoundException If the file does not exist

AccessDeniedException If the file could not be read

Overrides MimeTypeGuesserInterface::guess

File

drupal/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/FileBinaryMimeTypeGuesser.php, line 54

Class

FileBinaryMimeTypeGuesser
Guesses the mime type with the binary "file" (only available on *nix)

Namespace

Symfony\Component\HttpFoundation\File\MimeType

Code

public function guess($path) {
  if (!is_file($path)) {
    throw new FileNotFoundException($path);
  }
  if (!is_readable($path)) {
    throw new AccessDeniedException($path);
  }
  if (!self::isSupported()) {
    return null;
  }
  ob_start();

  // need to use --mime instead of -i. see #6641
  passthru(sprintf($this->cmd, escapeshellarg($path)), $return);
  if ($return > 0) {
    ob_end_clean();
    return null;
  }
  $type = trim(ob_get_clean());
  if (!preg_match('#^([a-z0-9\\-]+/[a-z0-9\\-]+)#i', $type, $match)) {

    // it's not a type, but an error message
    return null;
  }
  return $match[1];
}