Foros del Web » Programando para Internet » PHP »

Que solo me de el nombre del archivo seleccionado sin ruta <input type="file"

Estas en el tema de Que solo me de el nombre del archivo seleccionado sin ruta <input type="file" en el foro de PHP en Foros del Web. Tengo este campo Código: <input type="file" name="archivo" value="" size="24" enctype="multipart/form-data" /> No lo uso para subir el archivo, solo para seleccionar el nombre del archivo ...
  #1 (permalink)  
Antiguo 27/04/2009, 17:58
Avatar de Capimaster  
Fecha de Ingreso: agosto-2004
Mensajes: 494
Antigüedad: 19 años, 8 meses
Puntos: 2
Que solo me de el nombre del archivo seleccionado sin ruta <input type="file"

Tengo este campo

Código:
<input type="file" name="archivo" value="" size="24"  enctype="multipart/form-data" />
No lo uso para subir el archivo, solo para seleccionar el nombre del archivo que quiero guardar en mi base de datos... el archivo ya se encuentra en mi servidor..

Bueno la bronca es que al darle examinar me pone la ruta completa del archivo seleccionado por consecuencia.... a mi base de datos se almacena asi...

C:\Users\Capimaster\Desktop\chiclon\DSC09848.jpg

yo lo que quiero es que solo tome el DSC09848.jpg para subirlo a la base de datos....

otro detalle...

a la hora de almacenar en la bd... quiero separar asi

DSC09848 -> en campo file y
.jpg -> en campo extension

si no me equivo lo puedo hacer con str_replace pero no se como hacerlo para el antes del . y el despues del .

Gracias Anticipadas
__________________
http://www.elcapitolio.com.mx - Ocotlán, Jalisco, México
  #2 (permalink)  
Antiguo 27/04/2009, 18:10
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Que solo me de el nombre del archivo seleccionado sin ruta <input type="fi

haz algo asi

$archivo=explode("/",$direccion_archivo);

$nombre_archivo=array_pop($archivo);

$archivo=explode(".",$nombre_archivo);

$nombre=$archivo[0];
$extension=$archivo[1];
  #3 (permalink)  
Antiguo 27/04/2009, 18:25
 
Fecha de Ingreso: julio-2008
Mensajes: 85
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: Que solo me de el nombre del archivo seleccionado sin ruta <input type="fi

No había leído bien... borro el post :þ harvestmoon va en lo cierto.

De todas formas aprovecho para comentar. Si el archivo ya está en el servidor, el método que usas no parece el mejor.
¿Qué tal una lista donde seleccionar el archivo?

Última edición por LoveMeNot; 27/04/2009 a las 19:07
  #4 (permalink)  
Antiguo 27/04/2009, 18:42
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: Que solo me de el nombre del archivo seleccionado sin ruta <input type="fi

quitale el enctype="multipart/form-data" cambialo por text plain
eso te dara solo el nombre del archivo
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
  #5 (permalink)  
Antiguo 27/04/2009, 19:21
Avatar de Capimaster  
Fecha de Ingreso: agosto-2004
Mensajes: 494
Antigüedad: 19 años, 8 meses
Puntos: 2
Respuesta: Que solo me de el nombre del archivo seleccionado sin ruta <input type="fi

No lo he logrado de ninguna manera ¿? :S
__________________
http://www.elcapitolio.com.mx - Ocotlán, Jalisco, México
  #6 (permalink)  
Antiguo 27/04/2009, 19:44
 
Fecha de Ingreso: mayo-2006
Ubicación: Argentina (Buenos Aires,CABALLITO)
Mensajes: 331
Antigüedad: 18 años
Puntos: 9
Respuesta: Que solo me de el nombre del archivo seleccionado sin ruta <input type="fi

$HTTP_POST_FILES['file']['name']

te dara el nombre del archivo.
  #7 (permalink)  
Antiguo 27/04/2009, 19:45
Avatar de Capimaster  
Fecha de Ingreso: agosto-2004
Mensajes: 494
Antigüedad: 19 años, 8 meses
Puntos: 2
Respuesta: Que solo me de el nombre del archivo seleccionado sin ruta <input type="fi

Parece que casi me funciona la opcion de By_George la bronca es...

$archivo=explode("/",$direccion_archivo);


C:\Users\Capimaster\Desktop\chiclon\DSC09848.jpg

la diagonal es invertida

y no la puedo cambiar o como le podria hacer?
__________________
http://www.elcapitolio.com.mx - Ocotlán, Jalisco, México
  #8 (permalink)  
Antiguo 27/04/2009, 21:14
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Que solo me de el nombre del archivo seleccionado sin ruta <input type="fi

pues solo cambia la diagonal como patron para crear las sudcadenas

$archivo=explode("\",$direccion_archivo);

o porque no la puedes cambiar
  #9 (permalink)  
Antiguo 27/04/2009, 23:19
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Respuesta: Que solo me de el nombre del archivo seleccionado sin ruta <input type="fi

Si tienes una cadena con una ruta como
C:\Users\Capimaster\Desktop\chiclon\DSC09848.jpg

Puedes utilizar la función pathinfo() y tendrás la información directamente en un array, identificando partes como la carpeta, el nombre del archivo y la extensión.

Copio el ejemplo del manual:
Código PHP:
<?php
$partes_ruta 
pathinfo('C:\Users\Capimaster\Desktop\chiclon\DSC09848.jpg');

echo 
$partes_ruta['dirname'] . "\n"// directorio
echo $partes_ruta['basename'] . "\n"// nombre de archivo con extensión
echo $partes_ruta['extension'] . "\n"// extensión
echo $partes_ruta['filename'], "\n"// nombre de archivo sin extensión. Desde PHP 5.2.0
?>
Saludos,
  #10 (permalink)  
Antiguo 28/04/2009, 11:48
Avatar de Capimaster  
Fecha de Ingreso: agosto-2004
Mensajes: 494
Antigüedad: 19 años, 8 meses
Puntos: 2
Respuesta: Que solo me de el nombre del archivo seleccionado sin ruta <input type="fi

Cita:
Iniciado por By_George Ver Mensaje
pues solo cambia la diagonal como patron para crear las sudcadenas

$archivo=explode("\",$direccion_archivo);

o porque no la puedes cambiar
por que si uso esa diagonal se daña el codigo marca error
__________________
http://www.elcapitolio.com.mx - Ocotlán, Jalisco, México
  #11 (permalink)  
Antiguo 28/04/2009, 11:52
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Que solo me de el nombre del archivo seleccionado sin ruta <input type="fi

marca error por la que la diagonal invertida es un carácter especial...

Código PHP:
echo end(explode("\\"$foo)); 
pero bueno, para eso existen funciones... no pierdan el tiempo inventando códigos mágicos!!

Código PHP:
echo basename($foo); 
http://php.net/basename


__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #12 (permalink)  
Antiguo 28/04/2009, 11:53
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Que solo me de el nombre del archivo seleccionado sin ruta <input type="fi

si lo pones dos veces la diagonal ademas creo que es mas facil y mejor usar el metodo que te dijo ....... jpinedo y que ahora mismo recalca paketetrueke
  #13 (permalink)  
Antiguo 28/04/2009, 13:06
Avatar de Capimaster  
Fecha de Ingreso: agosto-2004
Mensajes: 494
Antigüedad: 19 años, 8 meses
Puntos: 2
Respuesta: Que solo me de el nombre del archivo seleccionado sin ruta <input type="fi

Bueno pues gracias a todos.. intente todos los metodos y solo con uno lo logre...

Pateketrueke tampoco me funciono basename

pero bueno les paso como quedo por fin mi codigo.. asi si funciono..
viene del metodo propuesto por By_George

Código PHP:

$archivo
=explode("\\"$_POST['archivo']);

$nombre_archivo=array_pop($archivo);

$archivo=explode(".",$nombre_archivo);

$nombre=$archivo[0];
$extension=$archivo[1]; 
__________________
http://www.elcapitolio.com.mx - Ocotlán, Jalisco, México
  #14 (permalink)  
Antiguo 28/04/2009, 13:10
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Respuesta: Que solo me de el nombre del archivo seleccionado sin ruta <input type="fi

Insisto en que deberías utilizar las funciones que te provee PHP:
Código php:
Ver original
  1. $partes_ruta = pathinfo($_POST['archivo']);
  2.  
  3. echo $partes_ruta['extension'] . "<br />\n"; // extensión
  4. echo $partes_ruta['filename']; // nombre de archivo sin extensión. Desde PHP 5.2.0
Saludos,
  #15 (permalink)  
Antiguo 28/04/2009, 13:36
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Que solo me de el nombre del archivo seleccionado sin ruta <input type="fi

que raro que basename() no te funcione a ti.... ya que esta función sirve exactamente para eso !!!

Cita:
Iniciado por http://php.net/basename
basename - Devuelve la parte del path correspondiente al nombre del archivo
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
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 13:35.