From 27ffa62131f76ba21ec4abd6ad25543966c11e90 Mon Sep 17 00:00:00 2001 From: Jake Dallimore Date: Wed, 15 Nov 2017 16:42:18 +0800 Subject: [PATCH] MDL-58272 core_files: get converters from file extension not mimetype --- files/classes/converter.php | 6 +++--- files/tests/converter_test.php | 5 ++--- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/files/classes/converter.php b/files/classes/converter.php index 32793d3485e..da8c5ba0cbd 100644 --- a/files/classes/converter.php +++ b/files/classes/converter.php @@ -127,7 +127,7 @@ class converter { if ($status === conversion::STATUS_PENDING || $status === conversion::STATUS_FAILED) { // The current status is either pending or failed. // Attempt to pick up a new converter and convert the document. - $from = \core_filetypes::get_file_extension($file->get_mimetype()); + $from = pathinfo($file->get_filename(), PATHINFO_EXTENSION); $converters = $this->get_document_converter_classes($from, $format); $currentconverter = $this->get_next_converter($converters, $conversion->get('converter')); @@ -225,9 +225,9 @@ class converter { return false; } - $from = \core_filetypes::get_file_extension($file->get_mimetype()); + $from = pathinfo($file->get_filename(), PATHINFO_EXTENSION); if (!$from) { - // No mime type could be found. Unable to determine converter. + // No file extension could be found. Unable to determine converter. return false; } diff --git a/files/tests/converter_test.php b/files/tests/converter_test.php index 950d5932df0..e345c1e40d9 100644 --- a/files/tests/converter_test.php +++ b/files/tests/converter_test.php @@ -341,7 +341,7 @@ class core_files_converter_testcase extends advanced_testcase { } /** - * Test the can_convert_storedfile_to function with a file with indistinguished mimetype. + * Test the can_convert_storedfile_to function with a file with a known mimetype and extension. */ public function test_can_convert_storedfile_to_docx() { $returnvalue = (object) []; @@ -352,8 +352,7 @@ class core_files_converter_testcase extends advanced_testcase { $types = \core_filetypes::get_types(); - // A file with filename '.' is a directory. - $file = $this->get_stored_file('example content', 'example', [ + $file = $this->get_stored_file('example content', 'example.docx', [ 'mimetype' => $types['docx']['type'], ]);