From 626f511ebd6437df5e679d1f75ec8cebfb08f9e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9e=20Kooi?= Date: Mon, 8 Oct 2018 15:26:32 +0200 Subject: [PATCH] Support mime types with additional data, fixes #1074 --- packages/@uppy/utils/src/getFileTypeExtension.js | 3 +++ packages/@uppy/utils/src/getFileTypeExtension.test.js | 3 +++ 2 files changed, 6 insertions(+) diff --git a/packages/@uppy/utils/src/getFileTypeExtension.js b/packages/@uppy/utils/src/getFileTypeExtension.js index e0c4d9fcf..b0dbec6dd 100644 --- a/packages/@uppy/utils/src/getFileTypeExtension.js +++ b/packages/@uppy/utils/src/getFileTypeExtension.js @@ -7,10 +7,13 @@ const mimeToExtensions = { 'audio/ogg': 'ogg', 'video/webm': 'webm', 'audio/webm': 'webm', + 'video/x-matroska': 'mkv', 'video/mp4': 'mp4', 'audio/mp3': 'mp3' } module.exports = function getFileTypeExtension (mimeType) { + // Remove the ; bit in 'video/x-matroska;codecs=avc1' + mimeType = mimeType.replace(/;.*$/, '') return mimeToExtensions[mimeType] || null } diff --git a/packages/@uppy/utils/src/getFileTypeExtension.test.js b/packages/@uppy/utils/src/getFileTypeExtension.test.js index 4d205631d..58e846b23 100644 --- a/packages/@uppy/utils/src/getFileTypeExtension.test.js +++ b/packages/@uppy/utils/src/getFileTypeExtension.test.js @@ -5,6 +5,9 @@ describe('getFileTypeExtension', () => { expect(getFileTypeExtension('video/ogg')).toEqual('ogv') expect(getFileTypeExtension('audio/ogg')).toEqual('ogg') expect(getFileTypeExtension('video/webm')).toEqual('webm') + // Supports mime types with additional data + expect(getFileTypeExtension('video/webm;codecs=vp8,opus')).toEqual('webm') + expect(getFileTypeExtension('video/x-matroska;codecs=avc1')).toEqual('mkv') expect(getFileTypeExtension('audio/webm')).toEqual('webm') expect(getFileTypeExtension('video/mp4')).toEqual('mp4') expect(getFileTypeExtension('audio/mp3')).toEqual('mp3')