Merge pull request #452 from LluisArevalo/master

Image Upload to S3 - ContentType not set
This commit is contained in:
Max Wu 2017-05-08 19:14:31 +08:00 committed by GitHub
commit 90631df2ba
2 changed files with 26 additions and 0 deletions

6
app.js
View File

@ -22,6 +22,9 @@ var i18n = require('i18n')
var flash = require('connect-flash') var flash = require('connect-flash')
var validator = require('validator') var validator = require('validator')
// utils
var getImageMimeType = require('./lib/utils.js').getImageMimeType
// core // core
var config = require('./lib/config.js') var config = require('./lib/config.js')
var logger = require('./lib/logger.js') var logger = require('./lib/logger.js')
@ -548,6 +551,9 @@ app.post('/uploadimage', function (req, res) {
Body: buffer Body: buffer
} }
var mimeType = getImageMimeType(files.image.path)
if (mimeType) { params.ContentType = mimeType }
s3.putObject(params, function (err, data) { s3.putObject(params, function (err, data) {
if (err) { if (err) {
logger.error(err) logger.error(err)

View File

@ -3,3 +3,23 @@
exports.isSQLite = function isSQLite (sequelize) { exports.isSQLite = function isSQLite (sequelize) {
return sequelize.options.dialect === 'sqlite' return sequelize.options.dialect === 'sqlite'
} }
exports.getImageMimeType = function getImageMimeType (imagePath) {
var fileExtension = /[^.]+$/.exec(imagePath)
switch (fileExtension[0]) {
case 'bmp':
return 'image/bmp'
case 'gif':
return 'image/gif'
case 'jpg':
case 'jpeg':
return 'image/jpeg'
case 'png':
return 'image/png'
case 'tiff':
return 'image/tiff'
default:
return undefined
}
}