Fix upload of file which don't have any extension
authorChocobozzz <florian.bigard@gmail.com>
Sat, 9 Jan 2016 11:59:13 +0000 (12:59 +0100)
committerChocobozzz <florian.bigard@gmail.com>
Sat, 9 Jan 2016 11:59:13 +0000 (12:59 +0100)
routes/api/v1/videos.js

index ae70d164005c1ca816d300e978ae59f27d9ec4ae..95c1dffc7dea1f3e258e9daf681f104ef00f73a5 100644 (file)
@@ -3,6 +3,7 @@
 
   var express = require('express')
   var config = require('config')
+  var crypto = require('crypto')
   var multer = require('multer')
   var router = express.Router()
 
     })
   }
 
-  var reqFiles = multer({ dest: uploads }).fields([{ name: 'input_video', maxCount: 1 }])
+  // multer configuration
+  var storage = multer.diskStorage({
+    destination: function (req, file, cb) {
+      cb(null, uploads)
+    },
+
+    filename: function (req, file, cb) {
+      var extension = ''
+      if (file.mimetype === 'video/webm') extension = 'webm'
+      else if (file.mimetype === 'video/mp4') extension = 'mp4'
+      else if (file.mimetype === 'video/ogg') extension = 'ogv'
+      crypto.pseudoRandomBytes(16, function (err, raw) {
+        var fieldname = err ? undefined : raw.toString('hex')
+        cb(null, fieldname + '.' + extension)
+      })
+    }
+  })
+  var reqFiles = multer({ storage: storage }).fields([{ name: 'input_video', maxCount: 1 }])
 
   router.get('/', miscMiddleware.cache(false), listVideos)
   router.post('/', reqFiles, reqValidator.videosAdd, miscMiddleware.cache(false), addVideos)