la page de partage va correctement chercher les fichiers legacy.

This commit is contained in:
Esenjin 2025-01-15 19:35:52 +01:00
parent 3cacb4645f
commit fd1ac715db

View File

@ -23,27 +23,47 @@ if (!isset($_GET['file'])) {
break; break;
default: default:
$basePath = UPLOAD_DIR; $basePath = UPLOAD_DIR;
$path = 'fichiers/'; // Assurer que le path par défaut est correct
} }
$filepath = $basePath . $filename; $filepath = $basePath . $filename;
// Vérifier si le fichier existe // Vérifier que le fichier existe et est un fichier régulier
if (!file_exists($filepath)) { if (!file_exists($filepath) || !is_file($filepath)) {
$error = 'Fichier introuvable'; $error = 'Fichier introuvable';
} else { } else {
// Récupérer les informations du fichier // Vérifier que le chemin est sécurisé
$file_info = [ $realpath = realpath($filepath);
'name' => $filename, $allowed = false;
'size' => filesize($filepath),
'extension' => strtolower(pathinfo($filename, PATHINFO_EXTENSION)), if (strpos($realpath, realpath(UPLOAD_DIR)) === 0) {
'preview_type' => getPreviewType(pathinfo($filename, PATHINFO_EXTENSION)) $allowed = true;
]; } else {
foreach (LEGACY_UPLOAD_DIRS as $dir) {
if (strpos($realpath, realpath($dir)) === 0) {
$allowed = true;
break;
}
}
}
if (!$allowed) {
$error = 'Accès non autorisé';
} else {
// Récupérer les informations du fichier
$file_info = [
'name' => $filename,
'size' => filesize($filepath),
'extension' => strtolower(pathinfo($filename, PATHINFO_EXTENSION)),
'preview_type' => getPreviewType(pathinfo($filename, PATHINFO_EXTENSION))
];
}
} }
} }
// Construction de l'URL absolue du fichier // Construction des URLs
$file_url = SITE_URL . 'fichiers/' . ($file_info ? rawurlencode($file_info['name']) : ''); $file_url = SITE_URL . $path . ($file_info ? rawurlencode($file_info['name']) : '');
$share_url = SITE_URL . 'share.php?file=' . ($file_info ? rawurlencode($file_info['name']) : ''); $share_url = SITE_URL . 'share.php?file=' . ($file_info ? rawurlencode($file_info['name']) : '') . '&path=' . urlencode($path);
// Contenu de la page // Contenu de la page
$pageTitle = $file_info ? $file_info['name'] : 'Fichier introuvable'; $pageTitle = $file_info ? $file_info['name'] : 'Fichier introuvable';
@ -86,8 +106,13 @@ ob_start(); ?>
</audio> </audio>
<?php elseif ($file_info['preview_type'] === 'text'): ?> <?php elseif ($file_info['preview_type'] === 'text'): ?>
<pre class="text-preview"><?php <pre class="text-preview"><?php
// Lire et afficher le contenu du fichier texte de manière sécurisée
$content = file_get_contents($filepath); $content = file_get_contents($filepath);
echo Cyla::escape($content); if ($content !== false) {
echo Cyla::escape($content);
} else {
echo "Erreur lors de la lecture du fichier";
}
?></pre> ?></pre>
<?php else: ?> <?php else: ?>
<div class="no-preview"> <div class="no-preview">