0faf89b5ab
refs #4453 * On by default * Added config to disable resizing * Added basic image optimization processing * Added dep: sharp (optional dep) * Added resize middleware * Take care of rotation based on EXIF information * Removed all meta data from optimised image * Added handling if sharp could not get installed * Do not read ext twice - optimisation * Do not call sharp if config is disabled * Do not remove the original image which was uploaded (store 2 images) * Support of `req.files` for internal logic * Disabled cache to enable file removal on Windows
46 lines
1.3 KiB
JavaScript
46 lines
1.3 KiB
JavaScript
const url = require('url'),
|
|
_ = require('lodash');
|
|
|
|
let _private = {};
|
|
|
|
_private.removeDoubleCharacters = function removeDoubleCharacters(character, string) {
|
|
let stringArray = string.split('');
|
|
|
|
return stringArray.reduce(function (newString, currentCharacter, index) {
|
|
if (
|
|
currentCharacter === character &&
|
|
stringArray[index + 1] === character
|
|
) {
|
|
return newString;
|
|
}
|
|
|
|
return newString + currentCharacter;
|
|
}, '');
|
|
};
|
|
|
|
module.exports.removeOpenRedirectFromUrl = function removeOpenRedirectFromUrl(urlString) {
|
|
let parsedUrl = url.parse(urlString);
|
|
|
|
return (
|
|
// http://
|
|
(parsedUrl.protocol ? parsedUrl.protocol + '//' : '') +
|
|
(parsedUrl.auth || '') +
|
|
(parsedUrl.host || '') +
|
|
_private.removeDoubleCharacters('/', parsedUrl.path) +
|
|
(parsedUrl.hash || '')
|
|
);
|
|
};
|
|
|
|
module.exports.checkFileExists = function checkFileExists(fileData) {
|
|
return !!(fileData.mimetype && fileData.path);
|
|
};
|
|
|
|
module.exports.checkFileIsValid = function checkFileIsValid(fileData, types, extensions) {
|
|
const type = fileData.mimetype;
|
|
|
|
if (_.includes(types, type) && _.includes(extensions, fileData.ext)) {
|
|
return true;
|
|
}
|
|
return false;
|
|
};
|