Téléchargement de fichier depuis UUID avec fichier log
Ce script permet de télécharger un fichier spécifique depuis une URL de type http://www.example.com/download?7ebbf342-209d-4f28-b4b6-6df953d8a86a
. Le résultat des requêtes s'ajoute dans un fichier de log.
Structure de fichiers
download/ download/files/ download/logs/ download/.htaccess download/index.php download/files.ini download/files/test.txt (optionnel)
download/.htaccess - Fichier de protection d'accès direct
download/index.php - Script de téléchargement
- index.php
<?php $files = parse_ini_file('files.ini'); $realfile = './files/'.$files[$_SERVER['QUERY_STRING']]; if ((!file_exists($realfile)) || (!array_key_exists($_SERVER['QUERY_STRING'],$files))) { $status = 'NOT-FOUND'; $log = date('Y-m-d H:i:s').' '.$_SERVER['REMOTE_ADDR'].' '.$_SERVER['HTTP_X_FORWARDED_FOR']." $status ".$_SERVER['QUERY_STRING']." $realfile\n"; file_put_contents('./logs/download_'.date("Y-m-d").'.log', $log, FILE_APPEND); die(header('Location: /error/404?uri='.$_SERVER['REQUEST_URI'])); } else { $status = 'OK'; $log = date('Y-m-d H:i:s').' '.$_SERVER['REMOTE_ADDR'].' '.$_SERVER['HTTP_X_FORWARDED_FOR']." $status ".$_SERVER['QUERY_STRING']." $realfile\n"; file_put_contents('./logs/download_'.date("Y-m-d").'.log', $log, FILE_APPEND); die(header('Location: '.$realfile)); } die();
download/files.ini - Fichier de correspondance UUID ⇒ Fichier
- files.ini
7ebbf342-209d-4f28-b4b6-6df953d8a86a="test.txt" ; Test, à supprimer (incluant le fichier) 961abd8c-50b0-468a-938c-6d695c28438d="" (...)
Pour générer des UUID : uuidgenerator.net