Oops, I forgot some other details... I believe this code will work for ascii text files, but it should work for binary files as well (I think):
// NOT TESTED
$select = mysql_query("SELECT file_name,file FROM table WHERE ID='3'");
list($file_name,$file) = mysql_fetch_row($select);
header("Content-Type: application/octet-stream");
header("Content-Length: " . strlen($file));
header("Content-Disposition: attachment; filename=$file_name");
echo $file;
Let me know how that turns out...
-Josh