From 578ec16de989e2b718592c1fe986ce76d78a7204 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Glawaty?= Date: Wed, 20 Mar 2024 02:43:21 +0100 Subject: [PATCH] Fixed `Content-Type` header parsing in `ResourceFactory::getResourceFromUrl()` --- src/Resource/ResourceFactory.php | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/Resource/ResourceFactory.php b/src/Resource/ResourceFactory.php index a359161..718d6be 100644 --- a/src/Resource/ResourceFactory.php +++ b/src/Resource/ResourceFactory.php @@ -10,8 +10,10 @@ use SixtyEightPublishers\FileStorage\Exception\FileNotFoundException; use SixtyEightPublishers\FileStorage\Exception\FilesystemException; use SixtyEightPublishers\FileStorage\PathInfoInterface; +use function array_shift; use function error_clear_last; use function error_get_last; +use function explode; use function file_exists; use function filter_var; use function fopen; @@ -129,10 +131,21 @@ private function getResourceFromUrl(PathInfoInterface $pathInfo, string $url): R pathInfo: $pathInfo, source: $source, mimeType: function () use ($headers): ?string { - return $this->getHeaderValue( + $contentTypeHeader = $this->getHeaderValue( headers: $headers, name: 'Content-Type', ); + + if (null === $contentTypeHeader) { + return null; + } + + $parts = explode( + separator: ';', + string: $contentTypeHeader, + ); + + return array_shift($parts); }, filesize: function () use ($headers): ?int { $filesize = $this->getHeaderValue(