Me refiero a esto:
Código PHP:
$archivo_arr = explode( "/", $ruta );
$archivo = $archivo_arr[count($archivo_arr) - 1];
Entiendo que así estamos obteniendo el nombre del archivo simplemente, sin importar la ruta en la que se encuentra.
Al hacer esto:
Código PHP:
if( !file_exists( $ruta ) ) {
die( "No existe $ruta" );
}
Estamos verificando si existe el archivo con la ruta especificada en la URL, incluyendo su folder contenedor (archivos/)
y luego al descargar usamos la variable $archivo, que sólo contiene el nombre del archivo. No hay cierta incongruencia? Si verificamos si existe el archivo contenido en $ruta, pues es eso lo que debemos leer usando readfile().
Saludos!