Files
bibliogame/public/servir-media.php
T

43 lines
913 B
PHP

<?php
declare(strict_types=1);
require_once dirname(__DIR__) . "/src/Config.php";
Config::charger();
$type = $_GET["type"] ?? "jaquettes";
$fichier = basename($_GET["fichier"] ?? "");
$dossiers = [
"jaquettes" => Config::get("jaquettesPath"),
"consoles-photos" => Config::get("consolesPhotosPath")
];
if ($fichier === "" || str_contains($fichier, "..") || !isset($dossiers[$type]))
{
http_response_code(404);
exit;
}
$chemin = $dossiers[$type] . "/" . $fichier;
if (!is_file($chemin))
{
http_response_code(404);
exit;
}
$extension = strtolower(pathinfo($chemin, PATHINFO_EXTENSION));
$types = [
"jpg" => "image/jpeg",
"jpeg" => "image/jpeg",
"png" => "image/png",
"webp" => "image/webp",
"gif" => "image/gif"
];
header("Content-Type: " . ($types[$extension] ?? "application/octet-stream"));
header("Cache-Control: public, max-age=604800");
readfile($chemin);