Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Mostrar nombre de archivo sin la ruta

Estas en el tema de Mostrar nombre de archivo sin la ruta en el foro de PHP en Foros del Web. Buenas a todos, Estoy teniendo algunas dificultades para mostrar un nombre de archivo sin que muestre la ruta completa. Lo que hace mi código es ...
  #1 (permalink)  
Antiguo 24/10/2014, 11:57
 
Fecha de Ingreso: marzo-2011
Mensajes: 40
Antigüedad: 13 años, 1 mes
Puntos: 0
Mostrar nombre de archivo sin la ruta

Buenas a todos,

Estoy teniendo algunas dificultades para mostrar un nombre de archivo sin que muestre la ruta completa.

Lo que hace mi código es recorrer una carpeta que se llama "manuales" y crear una tabla de 3 columnas con:
1- nombre del equipo
2- ver el manual en el explorador
3- descargar el manual

El nombre del equipo no es ni más ni menos que el nombre del archivo .pdf que esta alojado en el directorio Manuales.

Ahora el problema que tengo es que al momento de mostrar el nombre del equipo, me muestra toda la ruta completa
index/carpeta/carpeta/nombre del manual.pdf

Lo que quiero lograr es que solamente me muestre
<nombre del manual manual>.pdf

Este es el código:

Código PHP:
<?php
list($raiz$filename) = explode ("/"$file);
$files glob("manuales/*.*"); 
if(
count($files) > 0)
{
    echo 
"<table width = '900px' border = '2'> "
        echo 
"    <tr style = 'font-size: 20px; color: #555;'> "
        echo 
"        <td><b>Nombre del Equipo</b></td>";
        echo 
"        <td><b>Manual Online</b></td>";
        echo 
"        <td><b>Descarga del Manual</b></td>";
        echo 
"    </tr>";       
    foreach(
$files as $file)
    {
            echo 
"        <tr><td style = 'font-size: 14px; color: #555; text-align: left;'>";
            echo        
''.$file.''
            echo 
"       <td style = 'font-size: 14px; color: #555;'>";
            echo        
'<a href="'.$file.'">Ver Manual Online</a><br/>'
            echo 
"        </td>";
            echo 
"        <td style = 'font-size: 14px; color: #555;'>";
            echo        
'<a href="/download.php?file='.$file.'">Descargar</a><br/>'
            echo 
"        </td></tr>"
    }
        echo 
"  </table>"
}
?>

La variable $file sale de un archivo que tengo que se llama download.php que obtiene la ruta completa del archivo para poder descargarlo.

Lo que intente hacer es usar explode haciendo lo siguiente:

$filename = explode ("/", $file); y después reemplazar en la columna de Nombre del Equipo $file por $filename[2] pero cuando visualizo el archivo php me muestra la columna completamente vacía ...

Alguna sugerencia ?

Saludos.
  #2 (permalink)  
Antiguo 24/10/2014, 12:35
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Mostrar nombre de archivo sin la ruta

Para eso existe la función basename(), consulta el manual.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 24/10/2014, 13:21
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Mostrar nombre de archivo sin la ruta

Opción A es usar Basename

Opción B es tener guardado en la BD el nombre de los archivos.
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #4 (permalink)  
Antiguo 24/10/2014, 14:18
 
Fecha de Ingreso: marzo-2011
Mensajes: 40
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Mostrar nombre de archivo sin la ruta

Hola, primero gracias por su ayuda, les cuento que intente con las recomendaciones que me dieron pero no logre absolutamente nada ...

El asunto es así:

La variable $file la obtengo de otro archivo que se llama download.php, y la obtengo de esta forma:

$file = basename($_GET['file']);

Si imprimo con un echo $file me devuelve

/manuales/archivo.pdf

Para crear el link de descarga hice una variable:

$path = $root.$file

Hasta ahí funciona joya, cuando doy clic al link me pregunta si deseo descargar el archivo ...

El problema es que la columna que dice "Nombre del Equipo" me muestra el listado de todos los manuales así:

manuales/manual1.pdf
manuales/manual2.pdf
manuales/manual3.pdf
etc ...

Lo que quiero mostrar es:
manual1.pdf
manual2.pdf
manual3.pdf
etc

Para eso intente usar el explode, pero me muestra la lista vacía ...
Con basename obtuve el mismo resultado.
  #5 (permalink)  
Antiguo 24/10/2014, 15:06
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Mostrar nombre de archivo sin la ruta

Cita:
Iniciado por Snowball Ver Mensaje
Con basename obtuve el mismo resultado.
Y me imagino que debemos adivinar cómo has usado basename() ¿cierto?

Porque basename() sirve perfectamente para eso, mira:

Código PHP:
Ver original
  1. var_dump(basename('manuales/manual1.pdf'));

Eso devuelve claramente "manual1.pdf" así que si no te sale será porque algo haces mal, ¿cómo adivinar?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 27/10/2014, 07:28
 
Fecha de Ingreso: marzo-2011
Mensajes: 40
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Mostrar nombre de archivo sin la ruta

Ahora si te entendí ...

Siento no haber aclarado más, todavía me cuesta manejar PHP.

Estaba usando mal el basename y no me había dado cuenta, ya no me daba más la cabeza ese día.

Ahora si lo pude solucionar usando bien el basename, lo doy por solucionado.

Quedó como quería :D




Gracias por tu ayuda.

Etiquetas: nombre, ruta, tabla, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:02.