Don't assume that file binary exists on *nix OS
Certain lightweight distributions such as Alpine Linux (popular for smaller Docker images) do not include it by default.
This commit is contained in:
parent
10674688da
commit
e2c1f24fbd
@ -43,7 +43,21 @@ class FileBinaryMimeTypeGuesser implements MimeTypeGuesserInterface
|
|||||||
*/
|
*/
|
||||||
public static function isSupported()
|
public static function isSupported()
|
||||||
{
|
{
|
||||||
return '\\' !== DIRECTORY_SEPARATOR && function_exists('passthru') && function_exists('escapeshellarg');
|
static $supported = null;
|
||||||
|
|
||||||
|
if (null !== $supported) {
|
||||||
|
return $supported;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ('\\' === DIRECTORY_SEPARATOR || !function_exists('passthru') || !function_exists('escapeshellarg')) {
|
||||||
|
return $supported = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
ob_start();
|
||||||
|
passthru('command -v file', $exitStatus);
|
||||||
|
$binPath = trim(ob_get_clean());
|
||||||
|
|
||||||
|
return $supported = 0 === $exitStatus && '' !== $binPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user