Code :
<?php // pour interdire les téléchargements avec des liens externes n'oubliez pas de changer technologuepro.com par votre nom de domaine sans www. $user_refacces = $_SERVER['HTTP_REFERER']; preg_match('@^(?:http://)?([^/]+)@i',$user_refacces, $matches); $host = $matches[1]; preg_match('/[^.]+\\.[^.]+$/', $host, $matches); if ($matches[0]=="technologuepro.com") { // interdire le téléchargement des fichiers .php, .inc, html par mesure de sécurité $pathinfo = pathinfo($Fichier); if (in_array($pathinfo['extension'], array('php', 'php3', 'php4', 'php5', 'inc', 'phtml','jpg', 'html', 'htm'))) { die ("<br /><br /><br /><div style=\\"text-align: center;\\"><big>What are you trying to do ?</big></div>"); } else { // déterminer l'encodage switch(strrchr(basename($Fichier), ".")) {
case ".gz": $type = "application/x-gzip"; break; case ".tgz": $type = "application/x-gzip"; break; case ".zip": $type = "application/zip"; break; case ".pdf": $type = "application/pdf"; break; case ".png": $type = "image/png"; break; case ".gif": $type = "image/gif"; break; case ".jpg": $type = "image/jpeg"; break; case ".txt": $type = "text/plain"; break; default: $type = "application/octet-stream"; break;
} // commencer le téléchargement header("content-disposition: attachment; filename=$Fichier"); header("content-type: application/force-download"); header("content-transfer-encoding: $type\\n"); // envoie de la taille au navigateur header("Content-Length: ".filesize($chemin . $Fichier)); header("Pragma: no-cache"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public"); header("Expires: 0"); header("location:".$chemin . $Fichier); }
} else { // redirection en cas de tentative de téléchargement externe die ("<META HTTP-EQUIV=\\"refresh\\" CONTENT=\\"1;URL=http://www.technologuepro.com\\"> <div style=\\"text-align: center;\\"><big>Accée direct refusé </big><br />veuillez patienter quelques secondes<br /> </div>"); } ?>
|