Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Renombrar archivo subido.

Estas en el tema de Renombrar archivo subido. en el foro de PHP en Foros del Web. Buenas tardes amigos. Tengo un formulario que me sube archivos al servidor y me guarda la ruta en mi base de datos. Pero, me gustaría ...
  #1 (permalink)  
Antiguo 28/04/2014, 12:05
 
Fecha de Ingreso: enero-2014
Mensajes: 127
Antigüedad: 10 años, 2 meses
Puntos: 2
Renombrar archivo subido.

Buenas tardes amigos.

Tengo un formulario que me sube archivos al servidor y me guarda la ruta en mi base de datos.

Pero, me gustaría también, que me cambiara el nombre del archivo.

Es decir, mi tabla contiene únicamente 2 datos: CURP y foto, y me gustaría que 'foto' heredara el nombre del CURP.

Código PHP:
INSERT INTO fotosd (CURPFotoVALUES ('$_POST[CURP]','$destino'
Y lo que me sube el archivo:

Código PHP:
if (isset ($_POST ['guardar'])){
$archivo $_FILES['flsarchivo']['tmp_name'];
$destino "Fotos/".$_FILES['flsarchivo']['name'];
move_uploaded_file ($archivo$destino);

Espero que puedan ayudarme. :(
  #2 (permalink)  
Antiguo 28/04/2014, 12:16
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Renombrar archivo subido.

primero debes de conocer la extension del archivo que se subió,
despues colocas remplazas $_FILES['flsarchivo']['name'] por la curp,
y por último le agregas la extension del archivo.
Código PHP:
Ver original
  1. $destino = "Fotos/".$variableConLaCurp.$ext;
saludos
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #3 (permalink)  
Antiguo 28/04/2014, 12:41
Avatar de paginaswebs  
Fecha de Ingreso: febrero-2013
Mensajes: 73
Antigüedad: 11 años, 1 mes
Puntos: 3
Respuesta: Renombrar archivo subido.

Agrega como dice el compañero

$destino = "Fotos/".$variableConLaCurp.$ext;
  #4 (permalink)  
Antiguo 28/04/2014, 12:52
 
Fecha de Ingreso: enero-2014
Mensajes: 127
Antigüedad: 10 años, 2 meses
Puntos: 2
Respuesta: Renombrar archivo subido.

Cita:
Iniciado por paginaswebs Ver Mensaje
Agrega como dice el compañero

$destino = "Fotos/".$variableConLaCurp.$ext;
JAJAJA No, pues gracias por tu desempeño, copiando respuestas de otros.
  #5 (permalink)  
Antiguo 28/04/2014, 12:54
 
Fecha de Ingreso: enero-2014
Mensajes: 127
Antigüedad: 10 años, 2 meses
Puntos: 2
Respuesta: Renombrar archivo subido.

Cita:
Iniciado por eits Ver Mensaje
primero debes de conocer la extension del archivo que se subió,
despues colocas remplazas $_FILES['flsarchivo']['name'] por la curp,
y por último le agregas la extension del archivo.
Código PHP:
Ver original
  1. $destino = "Fotos/".$variableConLaCurp.$ext;
saludos
He conseguido que me cambie el nombre del archivo, sin embargo, tengo problemas con la extensión, y todas me las pone "tmp" sin punto. Es decir, si quería que el archivo fuera "abc.jpg" me lo pone "abctmp".

:(

Te enseño mi código:

Código PHP:
if (isset ($_POST ['guardar'])){
$archivo $_FILES['flsarchivo']['tmp_name'];
$extension explode("."$archivo);
$ext end($extension);
$destino "Fotos/".$_POST['CURP'].$ext;

move_uploaded_file ($archivo$destino);

  #6 (permalink)  
Antiguo 28/04/2014, 13:56
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Renombrar archivo subido.

El problema es que estas usando el nombre del archivo temporal y debes de usar el del nombre original: $_FILES['flsarchivo']['name']
Código PHP:
Ver original
  1. if (isset ($_POST ['guardar'])){
  2.     $archivo = $_FILES['flsarchivo']['tmp'];
  3.     $extension = explode(".", $_FILES['flsarchivo']['name']);
  4.     $ext = end($extension);
  5.     $destino = "Fotos/".$_POST['CURP'].$ext;
  6.  
  7.     move_uploaded_file ($archivo, $destino);
  8. }
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #7 (permalink)  
Antiguo 28/04/2014, 15:38
 
Fecha de Ingreso: enero-2014
Mensajes: 127
Antigüedad: 10 años, 2 meses
Puntos: 2
Respuesta: Renombrar archivo subido.

Gracias hhs probé el código, y aparentemente en la ruta es correcto, la bd me lo guarda perfecto, pero no me lo guarda en en el servidor. Creo que le falta algo al "move_uploaded" pero no logro averiguar el que. :/
  #8 (permalink)  
Antiguo 28/04/2014, 15:59
 
Fecha de Ingreso: enero-2014
Mensajes: 127
Antigüedad: 10 años, 2 meses
Puntos: 2
Respuesta: Renombrar archivo subido.

Lo he solucionado. xD Gracias. :)

Pero tengo otra duda, si quisiera limitar el tipo de extensiones permitidas. ¿Cómo podría hacerle?
Así quedó mi código:
Código PHP:


if (isset ($_POST ['guardar'])){ 
$archivo $_FILES['flsarchivo']['tmp_name']; 
$extension explode("."$_FILES['flsarchivo']['name']); 
$ext end($extension); 
$destino "Fotos/$_POST[CURP].".$ext
move_uploaded_file ($archivo$destino);


Última edición por Karen_mBrK; 28/04/2014 a las 16:55
  #9 (permalink)  
Antiguo 28/04/2014, 17:05
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Renombrar archivo subido.

puedes hacer 2 cosas,
1.- agregar un array con las extensiones permitidas y ya que tengas la extension puedes revisar el array en busca de esa extension, usa in_array, ó
2.- usa expresiones regulares, aqui puedes usar preg_match
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #10 (permalink)  
Antiguo 29/04/2014, 08:21
 
Fecha de Ingreso: enero-2014
Mensajes: 127
Antigüedad: 10 años, 2 meses
Puntos: 2
Respuesta: Renombrar archivo subido.

Pues, se me ocurrió esto, pero no me da resultado. :(

Código PHP:
$formatos = array ('.jpg','.png','.gif');
if (isset (
$_POST ['guardar'])){ 
$archivo $_FILES['flsarchivo']['tmp_name']; 
$extension explode("."$_FILES['flsarchivo']['name']); 
$ext end($extension); 
if (
in_array($ext$formatos)){
if(
move_uploaded_file ($archivo$destino)){
   
$destino "Fotos/$_POST[CURP].".$ext
 echo 
"Ok OK OK";
}else{
   echo 
"Error";
}
}else{
   echo 
"Formato no permitido";
}

  #11 (permalink)  
Antiguo 29/04/2014, 09:59
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Renombrar archivo subido.

cambia esto:
Código PHP:
Ver original
  1. $formatos = array ('.jpg','.png','.gif');
por esto:
Código PHP:
Ver original
  1. $formatos = array ('jpg','png','gif');

la función end te devuelve solo la extensión sin el punto, de tal forma que cuando haces el in_array no te va encontrar nada por que tu declaraste tu arreglo con extensiones incluyendo el punto (.jpg, .png, .gif)
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #12 (permalink)  
Antiguo 29/04/2014, 11:51
 
Fecha de Ingreso: enero-2014
Mensajes: 127
Antigüedad: 10 años, 2 meses
Puntos: 2
Respuesta: Renombrar archivo subido.

Tienes razón hhs te agradezco mucho.

Etiquetas: formulario, renombrar, tabla
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 11:54.