1<?php 2declare(strict_types = 1); 3namespace TYPO3\CMS\Core\Resource; 4 5/* 6 * This file is part of the TYPO3 CMS project. 7 * 8 * It is free software; you can redistribute it and/or modify it under 9 * the terms of the GNU General Public License, either version 2 10 * of the License, or any later version. 11 * 12 * For the full copyright and license information, please read the 13 * LICENSE.txt file that was distributed with this source code. 14 * 15 * The TYPO3 project - inspiring people to share! 16 */ 17 18/** 19 * This class contains a list of all available / known mimetypes and file extensions, 20 * and is automatically generated by TYPO3 via Core/Build/Scripts/generateMimeTypes.php 21 */ 22final class MimeTypeDetector 23{ 24 /** 25 * @var MimeTypeCollection 26 */ 27 private $collection; 28 29 public function __construct() 30 { 31 $this->collection = new MimeTypeCollection(); 32 } 33 34 /** 35 * @param string $fileExtension 36 * @return array<int, string> 37 */ 38 public function getMimeTypesForFileExtension(string $fileExtension): array 39 { 40 $mimeTypes = []; 41 $fileExtension = strtolower($fileExtension); 42 foreach ($this->collection->getMap() as $mimeType => $availableExtensions) { 43 if (in_array($fileExtension, $availableExtensions, true)) { 44 $mimeTypes[] = $mimeType; 45 } 46 } 47 return $mimeTypes; 48 } 49 50 /** 51 * @param string $mimeType 52 * @return array<int, string> 53 */ 54 public function getFileExtensionsForMimeType(string $mimeType): array 55 { 56 return $this->collection->getMap()[strtolower($mimeType)] ?? []; 57 } 58} 59