diff --git a/server/apps/immich/src/config/asset-upload.config.spec.ts b/server/apps/immich/src/config/asset-upload.config.spec.ts index f456bbbc55..89e698ff6c 100644 --- a/server/apps/immich/src/config/asset-upload.config.spec.ts +++ b/server/apps/immich/src/config/asset-upload.config.spec.ts @@ -78,6 +78,30 @@ describe('assetUploadOption', () => { expect(callback).toHaveBeenCalledWith(null, true); }); + it('should allow .wmv videos', () => { + const file = { mimetype: 'video/x-ms-wmv', originalname: 'test.wmv' } as any; + fileFilter(mock.userRequest, file, callback); + expect(callback).toHaveBeenCalledWith(null, true); + }); + + it('should allow .mkv videos', () => { + const file = { mimetype: 'video/x-matroska', originalname: 'test.mkv' } as any; + fileFilter(mock.userRequest, file, callback); + expect(callback).toHaveBeenCalledWith(null, true); + }); + + it('should allow .mpg videos', () => { + const file = { mimetype: 'video/mpeg', originalname: 'test.mpg' } as any; + fileFilter(mock.userRequest, file, callback); + expect(callback).toHaveBeenCalledWith(null, true); + }); + + it('should allow .flv videos', () => { + const file = { mimetype: 'video/x-flv', originalname: 'test.flv' } as any; + fileFilter(mock.userRequest, file, callback); + expect(callback).toHaveBeenCalledWith(null, true); + }); + it('should not allow unknown types', async () => { const file = { mimetype: 'application/html', originalname: 'test.html' } as any; const callback = jest.fn(); diff --git a/server/apps/immich/src/config/asset-upload.config.ts b/server/apps/immich/src/config/asset-upload.config.ts index e1bbb2953a..d1449c470c 100644 --- a/server/apps/immich/src/config/asset-upload.config.ts +++ b/server/apps/immich/src/config/asset-upload.config.ts @@ -54,7 +54,7 @@ function fileFilter(req: Request, file: any, cb: any) { } if ( file.mimetype.match( - /\/(jpg|jpeg|png|gif|mp4|webm|x-msvideo|quicktime|heic|heif|dng|x-adobe-dng|webp|tiff|3gpp|nef|x-nikon-nef|x-fuji-raf|x-samsung-srw)$/, + /\/(jpg|jpeg|png|gif|mp4|webm|x-msvideo|quicktime|heic|heif|dng|x-adobe-dng|webp|tiff|3gpp|nef|x-nikon-nef|x-fuji-raf|x-samsung-srw|mpeg|x-flv|x-ms-wmv|x-matroska)$/, ) ) { cb(null, true);