Trying to generate a php download link. Name of file will not set

Hello I am trying to generate a php powered download link for my program, I had copied and pasted some old code I had laying around which worked in the past, and it still seems to work okay except for 2 issues.

Issue 1: No matter what it always download the file as link.php not the filename

Issue 2:The filesize isn't sent to the browser(not really that concerned about this)

Mainly I need to know what I am doing wrong in setting the filename, here is my code below:

$file = $_GET['file'].'.exe';
if ($_GET['DL'] == "GO") {
header('Pragma: public');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Cache-Control: private', false); // required for certain browsers 
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'. basename('MIRROR/'.$file) . '";');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize('MIRROR/'.$file));
ob_clean();
flush();
readfile('MIRROR/'.$file);
die();
}

Upvotes: 3

Views: 382

Answers (1)

Marc B
Marc B

Reputation: 360732

Try taking out the trailing ;:

header('Content-Disposition: [..snip...] . basename($file) . '";');
                                                               ^--- here

Upvotes: 2

Related Questions