Lo último que mencionas sobre que te salga a descargar como nombre "pagina2.php" en lugar del nombre del archivo se debe a las cabeceras HTTP que al parecer no se están formando bien o no son interpretadas como esperas por tu navegador .
Intenta usar:
Código PHP:
$header = "Content-Disposition: filename=".basename($userfile);
}else {
$header = "Content-Disposition: attachment; filename=".basename($userfile);
con la función basename() nos quedamos sólo con el nombre del archivo si este contiene una ruta dada también (caso de "archivos/miarchivo.xls" ...
Y ten cuidado con los nombres de los archivos .. usa minusculas para todo a ser posible o indica el nombre exacto (minusculas/mayusculas) que uses ...
Un saludo,