PHP - Limitar formato de imagenes

 
Vista:

Limitar formato de imagenes

Publicado por Nelson Torres (32 intervenciones) el 27/11/2012 18:44:18
Hola tengo el siguiente código php en DW y se supone que me sirve para hacer que el usuario no suba a la carpeta del servidor documentos diferentes a imágenes. Lo que se supone que debe hacer es rectificar el tipo de formato validando un array, si el tipo se encuentra en el array permite mover el archivo a la carpeta especifica y si no debería emerger una ventana de error. Pero no hace ninguna de las dos. Pueden ayudarme?

1
2
3
4
5
6
7
$archivo = array('jpg','jpeg','gif','png');
$nombre_archivo = $_FILES['strImagen']['name'];
$array_archivo = explode('.',$nombre_archivo);
$contador = count($array_archivo);
$extension = strtolower($array_archivo[--$contador]);
if(!in_array($extension,$nombre_archivo)) $error="Este tipo de Archivo no es Válido";
if (empty($error)) move_uploaded_file($_FILES['strImagen']['tmp_name'],"documentos/imagenes/".$nombre_archivo);
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Limitar formato de imagenes

Publicado por xve (6935 intervenciones) el 27/11/2012 19:28:43
Hola Nelson, creo que tienes un error en:
1
if(!in_array($extension,$nombre_archivo)) $error="Este tipo de Archivo no es Válido";

$nombre_archivo no es un array!!!

Prueba así:
1
if(!in_array($extension,$array_archivo)) $error="Este tipo de Archivo no es Válido";


Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Limitar formato de imagenes

Publicado por Nelson Torres (32 intervenciones) el 27/11/2012 20:39:25
Hola!
Gracias por tu ayuda pero lamentablemente no funciona!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Limitar formato de imagenes

Publicado por Nelson Torres (32 intervenciones) el 27/11/2012 21:38:32
Hola!

Funciona así:
if(!in_array($extension,$archivo)) $error="Este tipo de Archivo no es Válido"; porque $archivo es lo que declaro como array, cuando ejecuto el código no permite el ingreso de archivos con formato diferente, sin embargo el error que estoy asignando para que aparezca en pantalla diciendo "Este tipo de Archivo no es Válido" no sale, puedes ayudarme?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Limitar formato de imagenes

Publicado por xve (6935 intervenciones) el 27/11/2012 22:17:55
Perfecto Nelson!!! gracias por comentarlo!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Limitar formato de imagenes

Publicado por Fernando Balderrama (80 intervenciones) el 28/11/2012 06:17:04
Hola Nelson, te falta imprimir en pantalla el texto que guardas en la variable $error. Es por eso que no sale.

La parte que mostras aca en tu consulta es solo la validacion. Luego de eso, y segun si el archivo pasó o no a validacion, tendrias que imprimir en pantalla algo como "El archivo se cargó satisfactoriamente" o el error "Este tipo de Archivo no es Válido".

Esto lo haces simplemente con el comando "echo"

echo $error;

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Limitar formato de imagenes

Publicado por Nelson Torres (32 intervenciones) el 28/11/2012 23:53:53
Hola!!

Por alguna extraña razón sigo sin poder hacer que el mensaje de error aparezca, ya use la ayuda de Fernando (por cierto gracias a los dos), pero no logré resultado. Así que probé con el siguiente código después del campo de archivo y dentro de la tabla pero tampoco logro el resultado:

<?php if (!empty($error)){ ?>
Este Tipo de Archivo no es Válido.
<?php }?>

Saludos!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Limitar formato de imagenes

Publicado por Fernando Balderrama (80 intervenciones) el 29/11/2012 00:54:21
Nelson, no estas imprimiendo en pantalla el contenido de la variable $error. Eso se hace como te dije anteriormente con el comando: echo

Seria algo asi

1
2
3
4
5
// Declaras la variable y le asignas el contenido
$error = "Este Tipo de Archivo no es Válido";
 
// Imprime en pantalla el contenido de la variable.
echo $error;


El comando echo tenes que ponerlo luego de declarar la variable. Sino te tirara error.
Tendrias que adaptar esto a tu codigo luego de la validacion, si hay un error:

1
2
3
if(!empty($error)) {
  echo $error;
}


O directamente podrias hacer una variable que se llame $mensaje en vez de $error

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// variable vacia
$mensaje = "";
 
// Validas el fromato de archivo 
if(!in_array($extension,$archivo)) {
  // Si el formato no esta dentro del array
  $mensaje="Este tipo de Archivo no es Válido";
}
 
// Si esta dentro del array , osea, si el formato es valido, subis el archivo con la funcion que utilizas 
// en tu codigo 
 
else  {
  move_uploaded_file .....
  $mensaje = "El archivo se cargo correctamente";
}
 
// Y dentro del html, tabla o lo que tengas, imprimis el mensaje 
<?php echo $mensaje; ?>


Para que esto funcione, la validacion y donde imprimis el mensaje deben estar en el mismo archivo... sino tendras que ver la manera de pasar la variable entre los archivos. Hay varios metodos.
Espero se entienda
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar