diff options
Diffstat (limited to 'app/server')
| -rw-r--r-- | app/server/util/upload.js | 45 |
1 files changed, 43 insertions, 2 deletions
diff --git a/app/server/util/upload.js b/app/server/util/upload.js index ca801da..fdda98d 100644 --- a/app/server/util/upload.js +++ b/app/server/util/upload.js @@ -12,6 +12,37 @@ var acceptableuploadTypes = { 'image/png': 'png', } +var typesByExtension = { + // audio + 'aiff': 'audio/aiff', + 'aif': 'audio/aiff', + 'mp3': 'audio/mp3', + 'wav': 'audio/wav', + 'flac': 'audio/flac', + 'ogg': 'audio/ogg', + 'opus': 'audio/ogg', + + // video + 'mp4': 'video/mp4', + 'webm': 'video/webm', + 'ogv': 'video/ogg', + 'mov': 'video/quicktime', + 'avi': 'video/x-msvideo', + 'wmv': 'video/x-ms-wmv', + + // image + 'gif': 'image/gif', + 'jpeg': 'image/jpg', + 'jpg': 'image/jpg', + 'png': 'image/png', + 'bmp': 'image/bmp', + 'tiff': 'image/tif', + 'tif': 'image/tif', + + // misc + 'zip': 'application/zip', +} + module.exports = {} module.exports.init = function(){ @@ -32,7 +63,7 @@ module.exports.put = function (opt) { var now = new Date() var file = opt.file - + var mimetype = file.mimetype var types = opt.types var extension = types && types[file.mimetype] @@ -40,6 +71,16 @@ module.exports.put = function (opt) { filename = opt.filename } else if (opt.preserveFilename) { filename = file.originalname + if (mimetype.indexOf('application') !== -1) { + var fpartz = file.originalname.split('.') + extension = fpartz.pop() + if (extension in typesByExtension) { + mimetype = typesByExtension[extension] + console.error('storing', extension, 'as', mimetype) + } else { + console.error('unknown extension', extension, 'storing as', mimetype) + } + } } else { filename = uuid() + "." + extension; } @@ -67,7 +108,7 @@ module.exports.put = function (opt) { console.log("upload >", remote_path) s3.putBuffer(file.buffer, remote_path, { 'Content-Length': file.size, - 'Content-Type': file.mimetype, + 'Content-Type': mimetype, 'x-amz-acl': 'public-read' }, function(err, s3res) { if (err || s3res.statusCode !== 200) { |
