From 060fb9d24b96548ebda4f6e82c7c66a286430579 Mon Sep 17 00:00:00 2001 From: Jonas L Date: Wed, 21 Sep 2022 14:04:56 +0200 Subject: [PATCH] fix(legacy): fail when uploading wma files (#2172) Fix #1449 --- legacy/application/common/FileDataHelper.php | 8 ++++++++ .../controllers/plugins/PageLayoutInitPlugin.php | 2 +- legacy/application/models/airtime/CcFiles.php | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/legacy/application/common/FileDataHelper.php b/legacy/application/common/FileDataHelper.php index f7b7f8f2a..d10c40204 100644 --- a/legacy/application/common/FileDataHelper.php +++ b/legacy/application/common/FileDataHelper.php @@ -27,6 +27,14 @@ class FileDataHelper ]; } + public static function getUploadAudioMimeTypeArray() + { + $mimes = self::getAudioMimeTypeArray(); + unset($mimes['audio/x-ms-wma']); + + return $mimes; + } + /** * We want to throw out invalid data and process the upload successfully * at all costs, so check the data and sanitize it if necessary. diff --git a/legacy/application/controllers/plugins/PageLayoutInitPlugin.php b/legacy/application/controllers/plugins/PageLayoutInitPlugin.php index cd6e29899..991493aa1 100644 --- a/legacy/application/controllers/plugins/PageLayoutInitPlugin.php +++ b/legacy/application/controllers/plugins/PageLayoutInitPlugin.php @@ -88,7 +88,7 @@ class PageLayoutInitPlugin extends Zend_Controller_Plugin_Abstract // Dropzone also accept file extensions and doesn't correctly extract certain mimetypes (eg. FLAC - try it), // so we append the file extensions to the list of mimetypes and that makes it work. - $mimeTypes = FileDataHelper::getAudioMimeTypeArray(); + $mimeTypes = FileDataHelper::getUploadAudioMimeTypeArray(); $fileExtensions = array_values($mimeTypes); foreach ($fileExtensions as &$extension) { $extension = '.' . $extension; diff --git a/legacy/application/models/airtime/CcFiles.php b/legacy/application/models/airtime/CcFiles.php index a255029a2..b785afffa 100644 --- a/legacy/application/models/airtime/CcFiles.php +++ b/legacy/application/models/airtime/CcFiles.php @@ -139,7 +139,7 @@ class CcFiles extends BaseCcFiles // Only accept files with a file extension that we support. // Let the analyzer do the heavy lifting in terms of mime verification and playability $fileExtension = pathinfo($originalFilename, PATHINFO_EXTENSION); - if (!in_array(strtolower($fileExtension), array_values(FileDataHelper::getAudioMimeTypeArray()))) { + if (!in_array(strtolower($fileExtension), array_values(FileDataHelper::getUploadAudioMimeTypeArray()))) { throw new Exception('Bad file extension.'); }