Sfoglia il codice sorgente

core: make allowedFileTypes extensions case insensitive

Renée Kooi 6 anni fa
parent
commit
3ac7789e13

+ 3 - 0
examples/bundled/index.js

@@ -18,6 +18,9 @@ const uppy = Uppy({
   meta: {
     username: 'John',
     license: 'Creative Commons'
+  },
+  restrictions: {
+    allowedFileTypes: ['.png']
   }
 })
   .use(Dashboard, {

+ 4 - 5
packages/@uppy/core/src/index.js

@@ -343,7 +343,7 @@ class Uppy {
     }
 
     if (allowedFileTypes) {
-      const isCorrectFileType = allowedFileTypes.filter((type) => {
+      const isCorrectFileType = allowedFileTypes.some((type) => {
         // if (!file.type) return false
 
         // is this is a mime-type
@@ -354,11 +354,10 @@ class Uppy {
 
         // otherwise this is likely an extension
         if (type[0] === '.') {
-          if (file.extension === type.substr(1)) {
-            return file.extension
-          }
+          return file.extension.toLowerCase() === type.substr(1).toLowerCase()
         }
-      }).length > 0
+        return false
+      })
 
       if (!isCorrectFileType) {
         const allowedFileTypesString = allowedFileTypes.join(', ')

+ 7 - 0
packages/@uppy/core/src/index.test.js

@@ -1179,6 +1179,13 @@ describe('src/Core', () => {
         expect(err).toMatchObject(new Error('You can only upload: .gif, .jpg, .jpeg'))
         expect(core.getState().info.message).toEqual('You can only upload: .gif, .jpg, .jpeg')
       }
+
+      expect(() => core.addFile({
+        source: 'jest',
+        name: 'foo2.JPG',
+        type: '',
+        data: new File([sampleImage], { type: 'image/jpeg' })
+      }).not.toThrow())
     })
 
     it('should enforce the maxFileSize rule', () => {