<?php /** @var string $filename */ $allowedImageTypes = loadPicFile("helpers/imagetypes.php"); $originalExtension = strtolower(pathinfo($filename, PATHINFO_EXTENSION)); if (!in_array($originalExtension, $allowedImageTypes)) { sendError(400); } $mimeType = MrMime::extensionToMimeType($originalExtension); $actualMimeType = MrMime::resolveMimeType($filename); if ($actualMimeType !== $mimeType) { Logger::warning("error", "Invalid image found.", array("filename" => $filename, "expectedMimeType" => $mimeType, "actualMimeType" => $actualMimeType)); sendError(500); } switch ($mimeType) { case "image/jpeg": $normalisedExtension = "jpeg"; break; default: $normalisedExtension = $originalExtension; break; } return array($normalisedExtension, $mimeType);