Add type-safe drop-in replacement for mime_content_type()
This commit is contained in:
parent
cb8c786284
commit
50d3a20b01
29
MD_STD.php
29
MD_STD.php
|
@ -378,6 +378,27 @@ final class MD_STD {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Wrapper around the finfo functions to get the mime content type of a file.
|
||||||
|
*
|
||||||
|
* @param string $filepath Expected file path.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public static function mime_content_type(string $filepath):string {
|
||||||
|
|
||||||
|
if (!($finfo = \finfo_open(FILEINFO_MIME_TYPE))) {
|
||||||
|
throw new Exception("Cannot open finfo context");
|
||||||
|
}
|
||||||
|
if (!($mime_type = finfo_file($finfo, $filepath))) {
|
||||||
|
throw new MDWrongFileType("Cannot get mime type of file: " . basename($filepath));
|
||||||
|
}
|
||||||
|
\finfo_close($finfo);
|
||||||
|
|
||||||
|
return $mime_type;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if a file exists, with one of the expected mime types.
|
* Checks if a file exists, with one of the expected mime types.
|
||||||
*
|
*
|
||||||
|
@ -397,13 +418,7 @@ final class MD_STD {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!($finfo = \finfo_open(FILEINFO_MIME_TYPE))) {
|
$mime_type = self::mime_content_type($filepath);
|
||||||
throw new Exception("Cannot open finfo context");
|
|
||||||
}
|
|
||||||
if (!($mime_type = finfo_file($finfo, $filepath))) {
|
|
||||||
throw new MDWrongFileType("Cannot get mime type of file: " . basename($filepath));
|
|
||||||
}
|
|
||||||
\finfo_close($finfo);
|
|
||||||
|
|
||||||
if (!\in_array($mime_type, $accepted_mimetype, true)) {
|
if (!\in_array($mime_type, $accepted_mimetype, true)) {
|
||||||
throw new MDWrongFileType("Incorrect mime type of file " . \basename($filepath) . ". Mime type is " . \mime_content_type($filepath) . ", accepted any of ['" . \implode("', '", $accepted_mimetype) . "']");
|
throw new MDWrongFileType("Incorrect mime type of file " . \basename($filepath) . ". Mime type is " . \mime_content_type($filepath) . ", accepted any of ['" . \implode("', '", $accepted_mimetype) . "']");
|
||||||
|
|
Loading…
Reference in New Issue
Block a user