]> source.dussan.org Git - vaadin-framework.git/commitdiff
Added missing MIME types to FileTypeResolver (#12070)
authorAnna Koskinen <Ansku@users.noreply.github.com>
Wed, 12 Aug 2020 11:03:10 +0000 (14:03 +0300)
committerGitHub <noreply@github.com>
Wed, 12 Aug 2020 11:03:10 +0000 (14:03 +0300)
Fixes #11235

server/src/main/java/com/vaadin/util/FileTypeResolver.java

index c3fc5c0756fb79d63c01729a464687228457e669..51aab9303b8190beb93dd5fa93693030f67fac8c 100644 (file)
@@ -17,7 +17,6 @@
 package com.vaadin.util;
 
 import java.io.File;
-import java.io.Serializable;
 import java.util.Collections;
 import java.util.Locale;
 import java.util.Map;
@@ -37,7 +36,6 @@ import com.vaadin.server.ThemeResource;
  * @author Vaadin Ltd.
  * @since 3.0
  */
-@SuppressWarnings("serial")
 public class FileTypeResolver {
 
     /**
@@ -52,9 +50,40 @@ public class FileTypeResolver {
     public static String DEFAULT_MIME_TYPE = "application/octet-stream";
 
     /**
-     * Initial file extension to mime-type mapping.
+     * Initial MIME-type to file extension mapping where the MIME type starts
+     * with {@code application/vnd}. Separate from the main mapping in order to
+     * limit the amount of long lines for the sake of readability.
      */
-    private static final String INITIAL_EXT_TO_MIME_MAP = "application/cu-seeme                            csm cu,"
+    private static final String INITIAL_APPLICATION_VND_MIME_TO_EXT_MAPPING = ""
+            + "application/vnd.ms-access                                                    mdb,"
+            + "application/vnd.ms-excel                                                     xls xlb,"
+            + "application/vnd.ms-excel.addin.macroEnabled.12                               xlam,"
+            + "application/vnd.ms-excel.sheet.binary.macroEnabled.12                        xlsb,"
+            + "application/vnd.ms-excel.sheet.macroEnabled.12                               xlsm,"
+            + "application/vnd.ms-excel.template.macroEnabled.12                            xltm,"
+            + "application/vnd.ms-powerpoint                                                ppt pps pot,"
+            + "application/vnd.ms-powerpoint.addin.macroEnabled.12                          ppam,"
+            + "application/vnd.ms-powerpoint.presentation.macroEnabled.12                   pptm,"
+            + "application/vnd.ms-powerpoint.slideshow.macroEnabled.12                      ppsm,"
+            + "application/vnd.ms-powerpoint.template.macroEnabled.12                       potm,"
+            + "application/vnd.ms-word.document.macroEnabled.12                             docm,"
+            + "application/vnd.ms-word.template.macroEnabled.12                             dotm,"
+            + "application/vnd.openxmlformats-officedocument.presentationml.presentation    pptx,"
+            + "application/vnd.openxmlformats-officedocument.presentationml.slideshow       ppsx,"
+            + "application/vnd.openxmlformats-officedocument.presentationml.template        potx,"
+            + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet            xlsx,"
+            + "application/vnd.openxmlformats-officedocument.spreadsheetml.template         xltx,"
+            + "application/vnd.openxmlformats-officedocument.wordprocessingml.document      docx,"
+            + "application/vnd.openxmlformats-officedocument.wordprocessingml.template      dotx,"
+            + "application/vnd.wap.wmlc                                                     wmlc,"
+            + "application/vnd.wap.wmlscriptc                                               wmlsc,";
+
+    /**
+     * Initial MIME-type to file extension mapping that will get parsed into a
+     * file extension to MIME-type map.
+     */
+    private static final String INITIAL_MIME_TO_EXT_MAPPING = ""
+            + "application/cu-seeme                            csm cu,"
             + "application/dsptype                             tsp,"
             + "application/futuresplash                        spl,"
             + "application/mac-binhex40                        hqx,"
@@ -66,10 +95,7 @@ public class FileTypeResolver {
             + "application/pgp-signature                       pgp,"
             + "application/postscript                          ps ai eps,"
             + "application/rtf                                 rtf,"
-            + "application/vnd.ms-excel                        xls xlb,"
-            + "application/vnd.ms-powerpoint                   ppt pps pot,"
-            + "application/vnd.wap.wmlc                        wmlc,"
-            + "application/vnd.wap.wmlscriptc                  wmlsc,"
+            + INITIAL_APPLICATION_VND_MIME_TO_EXT_MAPPING
             + "application/wordperfect5.1                      wp5,"
             + "application/zip                                 zip,"
             + "application/x-123                               wk,"
@@ -137,17 +163,17 @@ public class FileTypeResolver {
             + "application/x-x509-ca-cert                      crt,"
             + "audio/basic                                     au snd,"
             + "audio/midi                                      mid midi,"
+            + "audio/mp4                                       m4a,"
             + "audio/mpeg                                      mpga mpega mp2 mp3,"
             + "audio/mpegurl                                   m3u,"
+            + "audio/ogg                                       ogg,"
             + "audio/prs.sid                                   sid,"
+            + "audio/x-aac                                     aac,"
             + "audio/x-aiff                                    aif aiff aifc,"
             + "audio/x-gsm                                     gsm,"
             + "audio/x-pn-realaudio                            ra rm ram,"
             + "audio/x-scpls                                   pls,"
             + "audio/x-wav                                     wav,"
-            + "audio/ogg                                       ogg,"
-            + "audio/mp4                                       m4a,"
-            + "audio/x-aac                                     aac,"
             + "image/bitmap                                    bmp,"
             + "image/gif                                       gif,"
             + "image/ief                                       ief,"
@@ -198,14 +224,14 @@ public class FileTypeResolver {
             + "video/dl                                        dl,"
             + "video/fli                                       fli,"
             + "video/gl                                        gl,"
+            + "video/mp4                                       mp4,"
             + "video/mpeg                                      mpeg mpg mpe,"
+            + "video/ogg                                       ogv,"
             + "video/quicktime                                 qt mov,"
             + "video/x-mng                                     mng,"
             + "video/x-ms-asf                                  asf asx,"
             + "video/x-msvideo                                 avi,"
             + "video/x-sgi-movie                               movie,"
-            + "video/ogg                                       ogv,"
-            + "video/mp4                                       mp4,"
             + "x-world/x-vrml                                  vrm vrml wrl";
 
     /**
@@ -217,7 +243,7 @@ public class FileTypeResolver {
 
         // Initialize extension to MIME map
         final StringTokenizer lines = new StringTokenizer(
-                INITIAL_EXT_TO_MIME_MAP, ",");
+                INITIAL_MIME_TO_EXT_MAPPING, ",");
         while (lines.hasMoreTokens()) {
             final String line = lines.nextToken();
             final StringTokenizer exts = new StringTokenizer(line);