Qualche anno fa avevo il tuo stesso problema è l'ho risolto creandomi lo script qui sotto, nel mio caso mi serviva con collegamento al db, ti posto lo script per intero:
Codice PHP:
include("function/connessione.php");
$conn = connetti();
$query = "SELECT cartella,nome_file FROM download WHERE nome_file = '".$_REQUEST['file']."';";
$rs = mysql_query($query,$conn) or die (mysql_error());
if($record = mysql_fetch_array($rs))
{
$file_path = $record['cartella'];
}
disconnetti($conn);
//procedura per il download del file
$file_name = $_REQUEST ['file']; //nome del file da scaricare
$file_size = filesize ($file_path . $file_name); //dimensione del file
header("Content-Type: Application/octet-stream"); //forzo il browser per fare comparire la finestra di salvataggio del file
header("Content-Disposition: attachment; filename=" . $file_name);
header("Content Description: Download PHP");
header("Content-Length: " . $file_size);
$f = $file_path . $file_name;
readfile ($f);