我在计算文件下载量时遇到问题。如果下载文件的链接如下所示,则没有问题:http://your.site.domain/download.php?file=filename.exe&customer=ABC_423。但是,我的客户希望从这样的链接中统计统计信息:http://your.site.domain/downloadsfolder/ABC_423/filename.exe,他还需要在其他站点上热链接该链接。
我认为 .htaccess 文件中会有解决方案,但我不知道如何进行正确的重定向。
我的 PHP 脚本如下所示:
session_start(); define('SERVER_NAME', 'www.siteaddress.domain'); define('DOWNLOAD_PATH', 'http:// siteaddress.domain/versions/download'); define('DOWNLOAD_FILE', 'Setup.exe'); $filename = DOWNLOAD_PATH . '/' . $_GET['customer'] . '/' . DOWNLOAD_FILE; $headers = get_headers($filename); if ($headers[0] == 'HTTP/1.1 200 OK'){ // file exists, begin download procedure if(isset($_GET['customer'])){ // begin update statistics // mysql query to update specified row } // headers for downloading file header("Content-Type: application/force-download"); header('Content-Type: application/x-unknown'); header("Content-Type: application/octet-stream"); //header("Content-Type: application/download"); // not sure if needed header("Content-Disposition: attachment; filename=".basename($filename).";"); header("Accept-Ranges: bytes"); header("Content-Transfer-Encoding: binary"); header("Content-Length: ".remote_filesize(SERVER_NAME, $filename)); ob_clean(); flush(); readfile($filename); exit; }else{ echo 'File not found'; exit; }