TYPO3  7.6
FileInfo.php
Go to the documentation of this file.
1 <?php
2 namespace TYPO3\CMS\Core\Type\File;
3 
18 
22 class FileInfo extends \SplFileInfo implements TypeInterface
23 {
29  public function getMimeType()
30  {
31  $mimeType = false;
32  if ($this->isFile()) {
33  $fileExtensionToMimeTypeMapping = $GLOBALS['TYPO3_CONF_VARS']['SYS']['FileInfo']['fileExtensionToMimeType'];
34  $lowercaseFileExtension = strtolower($this->getExtension());
35  if (!empty($fileExtensionToMimeTypeMapping[$lowercaseFileExtension])) {
36  $mimeType = $fileExtensionToMimeTypeMapping[$lowercaseFileExtension];
37  } else {
38  if (function_exists('finfo_file')) {
39  $fileInfo = new \finfo();
40  $mimeType = $fileInfo->file($this->getPathname(), FILEINFO_MIME_TYPE);
41  } elseif (function_exists('mime_content_type')) {
42  $mimeType = mime_content_type($this->getPathname());
43  }
44  }
45  }
46 
47  if (isset($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][\TYPO3\CMS\Core\Type\File\FileInfo::class]['mimeTypeGuessers'])
48  && is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][\TYPO3\CMS\Core\Type\File\FileInfo::class]['mimeTypeGuesser'])
49  ) {
50  foreach ($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][\TYPO3\CMS\Core\Type\File\FileInfo::class]['mimeTypeGuesser'] as $mimeTypeGuesser) {
51  $hookParameters = array(
52  'mimeType' => &$mimeType
53  );
54 
55  \TYPO3\CMS\Core\Utility\GeneralUtility::callUserFunction(
56  $mimeTypeGuesser,
57  $hookParameters,
58  $this
59  );
60  }
61  }
62 
63  return $mimeType;
64  }
65 }