You do not need to rename it, you just need to change the name in the header, there is a script:
<?php // Check is set all params if (isset($_GET['name'], $_GET['type'], $_GET['version'])) { // Get the params into variables. // Secure replace to avoid the user downloading anyfile like @Kristian Antonsen said. // Replace all '..' to a single '.'; $name = preg_replace('/[\.]{2,}/', '.', trim($_GET['name'])); // Replace any strange characters. $type = preg_replace('/[^A-Za-z0-9]/', '', trim($_GET['type'])); // Replace any letter and strange character. $version = preg_replace('/[^0-9\.]/', '', trim($_GET['version'])); /** * Check is all the params filled with text * and check if the version is in the right format. */ if (!empty($name) && !empty($type) && !empty($version) && preg_match('/^[0-9](\.[0-9])+$', $version)) { /** * Get the file path, here we use 'dirname' to get the absolute path * if the download.php is on root */ $filePath = dirname(__FILE__) . '/dl/' . $name . '/' . $version . '.' . $type; // Check if the file exist. if (file_exists($filePath)) { // Add headers header('Cache-Control: public'); header('Content-Description: File Transfer'); header('Content-Disposition: attachment; filename=' . $name . '.' . $type); header('Content-Length: ' . filesize($filePath)); // Read file readfile($filePath); } else { die('File does not exist'); } } else { die('Missing params'); } }
source share