Foros del Web » Programando para Internet » PHP »

Validar tipo de imagen JPG y GIF en formulario

Estas en el tema de Validar tipo de imagen JPG y GIF en formulario en el foro de PHP en Foros del Web. Hola que tal Amigos, pues tengo una consulta que hacerles, estoy ya comprendiendo mejor php y pues estoy haciendo un formulario que sube imagenes a ...
  #1 (permalink)  
Antiguo 19/12/2009, 20:41
 
Fecha de Ingreso: agosto-2006
Mensajes: 9
Antigüedad: 18 años, 3 meses
Puntos: 0
Validar tipo de imagen JPG y GIF en formulario

Hola que tal Amigos, pues tengo una consulta que hacerles, estoy ya comprendiendo mejor php y pues estoy haciendo un formulario que sube imagenes a una carpeta y la ruta la almacena en una base de datos Mysql, el formulario y el archivo php que almacena y guarda la imagen en el folder ya los tengo lo que quisiera ahora hacer es que si se introduce una imagen o archivo que no sea formato jpg o gif envie un mensaje diciendo que no es un formato valido y si es valido que entonces siga con los demas procesos. Dejo el archivo del formulario y el programa que guarda las imagenes, espero que alguien me pueda ayudar.

Gracias.

formulario.php
Código:
<html>
<head>
<title>Subir imagenes</title>
</head>

<body>

<div align="center">
<form enctype="multipart/form-data" action="guardar.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="10000000000" />
Titulo:<br />
<input type="text" name="nombre" /><br />
Autor:<br />
<input type="text" name="autor" /><br />
Comentario:<br />
<input type="text" name="comentario" /><br />
Subir esta imagen:<br />
<input type="file" name="imagen" /><br /><br />
<input type="submit" value="Subir Imagen" /><br /><br />
</form>
</div>
</body>
</html>
guardar.php

Código:
<?
$ruta = "uploads/{$_FILES['imagen'][name]}";
if(!copy($_FILES['imagen']['tmp_name'], $ruta)) {
echo "Error al copiar el archivo";
} else {
echo "archivo subido con exito";
mysql_connect("localhost", "usuario", "pass");
mysql_select_db("db");
$nombre = $_POST["nombre"];
$autor = $_POST["autor"];
$comentario = $_POST["comentario"];
//$ruta = $_POST["ruta"];
mysql_query("INSERT INTO imagenes2 (nombre,autor,comentario,ruta) VALUES ('$nombre','$autor','$comentario','$ruta')");
echo " Se ha subido la imagen a la base de datos";
} 
?>
  #2 (permalink)  
Antiguo 19/12/2009, 21:16
Avatar de TheoriaX  
Fecha de Ingreso: agosto-2009
Ubicación: Hermosillo, Sonora
Mensajes: 217
Antigüedad: 15 años, 3 meses
Puntos: 5
Respuesta: Validar tipo de imagen JPG y GIF en formulario

$imagen_tipo=$_FILES['imagen']['type'];

if($imagen_tipo!="jpg"||$imagen_tipo!="gif")
__________________
Desarrollador .Net y Php
MCTS Framework 2.0:Windows Applications
Microsoft Certificated Profesional
  #3 (permalink)  
Antiguo 23/12/2009, 21:56
 
Fecha de Ingreso: agosto-2006
Mensajes: 9
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: Validar tipo de imagen JPG y GIF en formulario

Mcuhas Gracias TheoriaX, he intentado lo que me mencionas y veo que si funciona en teoria, pero no se si me podrias ayudar un poco en indicarme como lo coloco en el codigo, disculpa mi torpeza pero como no tengo mucho de programar me confundo un poco al utilizar if's anidados, dejo el codigo para ver si alguien me pue decir que estoy haciendo mal, gracias.

El codigo que dejo funciona correctamente para almacenar la ruta de la imagen en la base y depositar en la carpeta la imagen, pero al agregar el codigo para validar los tipos de imagen validos en este caso JPG o GIF sole me paraece el mesaje de "Solo se permiten imagenes JPG o GIF" y no carga nada a la base ni a la carpeta, aunque sean los formatos correctos, por lo cual creo que por la posicion en que he colocado el primer if da este error.

guardar.php

Código PHP:
$ruta "uploads/{$_FILES['imagen'][name]}";
$imagen_tipo $_FILES['imagen']['type'];
if (
$imagen_tipo != "jpg" || $imagen_tipo != "gif") { //Agrego este if para verificar si el tipo de imagen es JPG o GIF y Si no es manda el mensaje de error
echo "Solo se permiten imagenes JPG ó GIF";
}else{                                                                    
//Si el formato de imagen es valido continua con la carga a la base de datos y a la carpeta
      
if(!copy($_FILES['imagen']['tmp_name'], $ruta)) {
      echo 
"error al copiar el archivo";
      
      } else {
           echo 
"archivo subido con exito";
           
mysql_connect("localhost","usuario","pass");
           
mysql_select_db("db");
           
$nombre $_POST["nombre"];
           
$autor $_POST["autor"];
           
$comentario $_POST["comentario"];
           
mysql_query("INSERT INTO imagenes2 (nombre,autor,comentario,ruta) VALUES ('$nombre','$autor','$comentario','$ruta')");
           echo 
"Se ha subido la imagen a la base de datos";
      } 

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 12:34.