OpenXE/classes/Components/Http/File/FileInfo.php
2021-05-21 08:49:41 +02:00

48 lines
1.1 KiB
PHP

<?php
namespace Xentral\Components\Http\File;
use SplFileInfo;
use Xentral\Components\Http\Exception\FileNotFoundException;
class FileInfo extends SplFileInfo
{
/**
* @param string $filePath
* @param bool $checkExistence
*
* @throws FileNotFoundException
*/
public function __construct($filePath, $checkExistence = true)
{
if ($checkExistence === true && !is_file($filePath)) {
throw new FileNotFoundException(sprintf('File "%s" not found.', $filePath));
}
parent::__construct($filePath);
}
/**
* Returns the mime type of the file.
*
* @example CSV file -> 'text/plain'
* @example PDF file -> 'application/pdf'
*
* @return string Mime type
*/
public function getMimeType()
{
$finfo = finfo_open(FILEINFO_MIME);
$mimetype = finfo_file($finfo, $this->getRealPath());
finfo_close($finfo);
if ($mimetype !== false) {
$mimetype = preg_replace('/^(.+);.+$/', '\1', $mimetype);
} else {
$mimetype = 'application/octet-stream';
}
return $mimetype;
}
}