You'll need a database for my suggestion...
Create a table with columns (file_id, file_name)
Put the file ID in the url...
i.e. http://www.mywebsite.com/product.php?file_id=200
Base your needs from this:
<?php
ob_start();
$dir = "/home/username/public_html/downloads/";
$file_id = $_GET['file_id'];
$sql = mysql_query("SELECT file_id FROM table WHERE file_id='$file_id' LIMIT 0,1");
$fetch = mysql_fetch_array($sql);
$file_name = $fetch['file_name'];
$file = $dir.$file_name;
$file_type = $_FILES['$file']['type'];
header("Content-Type: ".$file_type);
header("Content-Disposition: attachment; filename=".$file_name);
readfile($file);
ob_end_flush();
?>
Untested...