From 2769e297ca6703f761f9b57792585eb1fc5aac49 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Mon, 6 Aug 2018 11:45:24 +0200 Subject: Fix caption upload on Mac OS --- server/helpers/custom-validators/video-captions.ts | 6 ++++-- server/helpers/express-utils.ts | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) (limited to 'server/helpers') diff --git a/server/helpers/custom-validators/video-captions.ts b/server/helpers/custom-validators/video-captions.ts index 6a9c6d75c..177e9e86e 100644 --- a/server/helpers/custom-validators/video-captions.ts +++ b/server/helpers/custom-validators/video-captions.ts @@ -1,4 +1,4 @@ -import { CONSTRAINTS_FIELDS, VIDEO_CAPTIONS_MIMETYPE_EXT, VIDEO_LANGUAGES, VIDEO_MIMETYPE_EXT } from '../../initializers' +import { CONSTRAINTS_FIELDS, VIDEO_CAPTIONS_MIMETYPE_EXT, VIDEO_LANGUAGES } from '../../initializers' import { exists, isFileValid } from './misc' import { Response } from 'express' import { VideoModel } from '../../models/video/video' @@ -8,7 +8,9 @@ function isVideoCaptionLanguageValid (value: any) { return exists(value) && VIDEO_LANGUAGES[ value ] !== undefined } -const videoCaptionTypes = Object.keys(VIDEO_CAPTIONS_MIMETYPE_EXT).map(m => `(${m})`) +const videoCaptionTypes = Object.keys(VIDEO_CAPTIONS_MIMETYPE_EXT) + .concat([ 'application/octet-stream' ]) // MacOS sends application/octet-stream >< + .map(m => `(${m})`) const videoCaptionTypesRegex = videoCaptionTypes.join('|') function isVideoCaptionFile (files: { [ fieldname: string ]: Express.Multer.File[] } | Express.Multer.File[], field: string) { return isFileValid(files, videoCaptionTypesRegex, field, CONSTRAINTS_FIELDS.VIDEO_CAPTIONS.CAPTION_FILE.FILE_SIZE.max) diff --git a/server/helpers/express-utils.ts b/server/helpers/express-utils.ts index f136a4329..b3cc40848 100644 --- a/server/helpers/express-utils.ts +++ b/server/helpers/express-utils.ts @@ -4,6 +4,7 @@ import { CONFIG, REMOTE_SCHEME } from '../initializers' import { logger } from './logger' import { User } from '../../shared/models/users' import { generateRandomString } from './utils' +import { extname } from 'path' function buildNSFWFilter (res: express.Response, paramNSFW?: string) { if (paramNSFW === 'true') return true @@ -50,7 +51,7 @@ function createReqFiles ( }, filename: async (req, file, cb) => { - const extension = mimeTypes[ file.mimetype ] + const extension = mimeTypes[ file.mimetype ] || extname(file.originalname) let randomString = '' try { -- cgit v1.2.3