summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/server/util/upload.js45
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) {