0
我有計算文件下載的問題。如果下載文件的鏈接如下所示,則不存在問題:http:// your.site.domain/download.php?file = filename.exe & customer = ABC_423。然而,我的客戶想要從這樣的鏈接統計數據:http:// your.site.domain/downloadsfolder/ABC_423/filename.exe,並且他還需要在其他站點上鍊接該鏈接。在PHP中下載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; }
我試過這個,但我得到循環,因爲在download.php中的頭函數使得重定向到該文件了。因此,.htaccess將無限循環重定向... – p3le 2013-03-01 14:54:21
請將'DOWNLOAD_PATH'更改爲本地路徑,而不是URL。這就是循環的原因。 – 2013-03-01 14:57:46
謝謝你的時間和幫助。它幫助了我很多,我會嘗試你上面提到的這種方法。 – p3le 2013-03-01 15:25:28