Te comento el código del compañero para que entiendas lo que hace.
Código PHP:
Ver original// recupera la URL del archivo
$file_url = $_GET['id'];
// Esta cabecera fuerza la descarga
header('Content-Type: application/octet-stream'); // Esta cabecera indica que se va a enviar un archivo binario
header("Content-Transfer-Encoding: Binary"); // Esta cabecera establece el nombre que se va a dar al archivo
header("Content-disposition: attachment; filename=\"" . basename($file_url) . "\""); // readfile lee un archivo y lo escribe en el búfer de salida
// fin del cuento