diff --git a/install/data/defaults.json b/install/data/defaults.json
index b2bcbec5af..70dcaf6d75 100644
--- a/install/data/defaults.json
+++ b/install/data/defaults.json
@@ -33,6 +33,7 @@
"allowUserHomePage": 1,
"allowMultipleBadges": 0,
"maximumFileSize": 2048,
+ "stripEXIFData": 1,
"resizeImageWidthThreshold": 2000,
"resizeImageWidth": 760,
"rejectImageWidth": 5000,
diff --git a/public/language/en-GB/admin/settings/uploads.json b/public/language/en-GB/admin/settings/uploads.json
index 10e53d7e32..34da585485 100644
--- a/public/language/en-GB/admin/settings/uploads.json
+++ b/public/language/en-GB/admin/settings/uploads.json
@@ -2,6 +2,7 @@
"posts": "Posts",
"allow-files": "Allow users to upload regular files",
"private": "Make uploaded files private",
+ "strip-exif-data": "Strip EXIF Data",
"private-extensions": "File extensions to make private",
"private-uploads-extensions-help": "Enter comma-separated list of file extensions to make private here (e.g. pdf,xls,doc). An empty list means all files are private.",
"resize-image-width-threshold": "Resize images if they are wider than specified width",
diff --git a/src/image.js b/src/image.js
index af61621c23..791c37c94a 100644
--- a/src/image.js
+++ b/src/image.js
@@ -9,6 +9,7 @@ var winston = require('winston');
var file = require('./file');
var plugins = require('./plugins');
+var meta = require('./meta');
var image = module.exports;
@@ -92,7 +93,7 @@ image.size = function (path, callback) {
};
image.stripEXIF = function (path, callback) {
- if (path.endsWith('.gif')) {
+ if (!meta.config.stripEXIFData || path.endsWith('.gif')) {
return setImmediate(callback);
}
async.waterfall([
diff --git a/src/views/admin/settings/uploads.tpl b/src/views/admin/settings/uploads.tpl
index cc4a1ab07c..3d63f999a1 100644
--- a/src/views/admin/settings/uploads.tpl
+++ b/src/views/admin/settings/uploads.tpl
@@ -20,6 +20,13 @@
+