Y ahora el archivo que procesa la desgarga del archivo llamalo descargar.php
   Código PHP:
    <?php $ruta = $_GET['ruta'];
$archivo_arr = explode( "/", $ruta );
$archivo = $archivo_arr[count($archivo_arr) - 1];
 
if( !file_exists( $ruta ) ) {
         die( "No existe $ruta" );
}
 
header( "Content-Disposition: attachment; filename=".$archivo."");
header( "Content-type: application/octet-stream" ); 
header("Content-Length: ".filesize($ruta)); //header que envia al navegador el tamaño del archivo.
 
@readfile( $ruta );  
?>    
  Y con esto creo que ya esta. Espero que os funcione a mi me va muy bien.
Un Saludo a todos.
Y visitar  
http://www.tuboolar-web.com 
NOTA. Para subir archivos grandes has de cambiar algunos parámetros de tu  php.ini
Si trabajas en local y si no habras de ponerte en contacto con tu hosting para que te lo cambien ellos.
Estos son los parámetros a cambiar: 
file_uploads = On // en On 
max_execution_time = 500 // los segundos que consideren 
max_input_time = 500// los segundos que consideren 
memory_limit = 50M // por lo regular el mismo tamaño del archivo a subir o quizas mas 
upload_tmp_dir = /xyz // su directorio temporal con permisos de R/W 
post_max_size = 50M // el tamaño maximo de su archivo a subir 
upload_max_filesize = 50M // el tamaño maximo de su archivo a subir