Foros del Web » Programando para Internet » PHP »

controlar si la imagen es jpg

Estas en el tema de controlar si la imagen es jpg en el foro de PHP en Foros del Web. Hola, quiero controlar que la imagen sea jpg. Me adjunta las imagenes que son jpg sin ningun problema pero probando con una imagen cuyo nombre ...
  #1 (permalink)  
Antiguo 03/10/2011, 13:37
 
Fecha de Ingreso: mayo-2010
Mensajes: 414
Antigüedad: 13 años, 11 meses
Puntos: 2
controlar si la imagen es jpg

Hola, quiero controlar que la imagen sea jpg. Me adjunta las imagenes que son jpg sin ningun problema pero probando con una imagen cuyo nombre es uru_01.gif me pone IE explorer no puede mostrar la pagina web.

El codigo:


<?php
include ("../../configuracion/conexion-usuario.php");
include ("../../_php/conexion.php");

$nombreDestino=$_POST["nombre-destino"];
$nombreDeImagen=$_POST["nombre-de-imagen"];
$nombreDeImagen2=$_POST["nombre-de-imagen2"];



$imagen=$_FILES["imagen"]["name"];
$destino="img2/$imagen";
$imagen2=$_FILES["imagen2"]["name"];
$destino2="img2/$imagen2";
$subTitulo=$_POST["sub-titulo"];
$descripcion=$_POST["descripcion"];
$descripcion2=$_POST["descripcion2"];
$nombreDestino=$_POST["nombre-destino"];

if ($imagen!=""){
$tipo = $_FILES['imagen']['type'];
if($tipo==("image/jpeg")||("image/pjpeg") )
{
$nombre=$_FILES["imagen"]["name"];


$carpeta="../img2";
$tamanio=188;
$path_origen=$_FILES["imagen"]["tmp_name"];
include "../paginas/tamanio.php";



$orden="UPDATE promociones SET imagen='$destino' WHERE imagen='$nombreDeImagen'";
$rs=mysql_query($orden, $conn) or die (mysql_error());

unlink ("../$nombreDeImagen");


header("location:../paginas/editar-promocion.php?nombre-destino=$nombreDestino");
}else{

echo 'El archivo que intento subir no es una imagen jpg.<br />';
echo "<a href='javascript:history.back(1)'>VOLVER</a>";

}

}

$orden="UPDATE promociones SET descripcion='$descripcion2', sub_titulo='$subTitulo', nombre_destino='$nombreDestino' WHERE nombre_destino='$nombreDestino'";
$rs=mysql_query($orden, $conn) or die (mysql_error());

$orden2="UPDATE destinos SET descripcion_destino='$descripcion' WHERE nombre='$nombreDestino'";
$rs2=mysql_query($orden2, $conn) or die (mysql_error());
header("location:../paginas/editar-promocion.php?nombre-destino=$nombreDestino");


if ($imagen2!=""){
$tipo = $_FILES['imagen2']['type'];
if($tipo==("image/jpeg")||("image/pjpeg") )
{
$nombre=$_FILES["imagen2"]["name"];
//Insertar en la base de datos


$carpeta="../img2";
$tamanio=900;
$path_origen=$_FILES["imagen2"]["tmp_name"];
include "../paginas/tamanio.php";


$orden="UPDATE destinos SET banner='$destino2' WHERE banner='$nombreDeImagen2'";
$rs=mysql_query($orden, $conn);
unlink ("../$nombreDeImagen2");

header("location:../paginas/editar-promocion.php?nombre-destino=$nombreDestino");

}else{

echo 'El archivo que intento subir no es una imagen jpg.<br />';
echo "<a href='javascript:history.back(1)'>VOLVER</a>";
}

}

?>

Saludos y gracias!
  #2 (permalink)  
Antiguo 03/10/2011, 13:41
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: controlar si la imagen es jpg

$_FILES[’userfile’][’type’]
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #3 (permalink)  
Antiguo 03/10/2011, 13:46
 
Fecha de Ingreso: mayo-2010
Mensajes: 414
Antigüedad: 13 años, 11 meses
Puntos: 2
Respuesta: controlar si la imagen es jpg

No entiendo la respuesta? Disculpa!
  #4 (permalink)  
Antiguo 03/10/2011, 13:57
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: controlar si la imagen es jpg

Seguramente tu problema esta en el peso de la imagen y no en su tipo. Intenta adjuntar un jpg que pese lo mismo o mas que tu gif a ver que pasa.
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #5 (permalink)  
Antiguo 03/10/2011, 13:59
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: controlar si la imagen es jpg

Cita:
Iniciado por sebacomas Ver Mensaje
No entiendo la respuesta? Disculpa!
Para verificar si la imagen que se envió es de tipo JPG utiliza esa función de PHP, ahora si lo quieres con plastilina seria así:

Código PHP:
Ver original
  1. if($_FILES["imagen"]["type"] == 'image/jpg'){
  2. echo "Esto si es una imagen JPG";
  3. }else{
  4. echo "Es otro tipo de imagen";
  5. }

OTRA FORMA:

Código PHP:
Ver original
  1. <?php
  2. $nombreimagen="archivo.jpg";//pon aquí cualquier variable que coja el nombre del archivo
  3. $imagen = explode(".", $nombreimagen);//separo el nombre del archivo por el punto de forma que queda la extension en $imagen[1]
  4. switch ($imagen[1]) {//voy verificando todas las posibilidades...
  5.    case "jpg":
  6.        echo "El archivo es una imagen .jpg";
  7.        break;
  8.    case "gif":
  9.        echo "El archivo es una imagen .gif";
  10.        break;
  11.    case "png":
  12.        echo "El archivo es una imagen .png";
  13.        break;
  14.    default://si no es ninguna de las anteriores no es una imagen
  15.          echo "El archivo no es una imagen";
  16. }
  17. ?>
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #6 (permalink)  
Antiguo 03/10/2011, 15:30
 
Fecha de Ingreso: mayo-2010
Mensajes: 414
Antigüedad: 13 años, 11 meses
Puntos: 2
Respuesta: controlar si la imagen es jpg

La imagen pesa 8,94 kbytes, no creo que sea por eso!


La respuesta a Jotaincubus, el jpg lo controlo en estas lineas de codigo:

$tipo = $_FILES['imagen']['type'];
if($tipo==("image/jpeg")||("image/pjpeg") )
{

La verdad no se porque todavía el problema.

Saludos y gracias!
  #7 (permalink)  
Antiguo 03/10/2011, 15:34
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: controlar si la imagen es jpg

Cita:
Iniciado por sebacomas Ver Mensaje
La imagen pesa 8,94 kbytes, no creo que sea por eso!


La respuesta a Jotaincubus, el jpg lo controlo en estas lineas de codigo:

$tipo = $_FILES['imagen']['type'];
if($tipo==("image/jpeg")||("image/pjpeg") )
{

La verdad no se porque todavía el problema.

Saludos y gracias!
Y si intentas

Código PHP:
Ver original
  1. if($tipo ==  'image/jpeg' || $tipo == 'image/pjpeg' || $tipo == 'image/jpg')

A mi me parece que así te puede funcionar.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #8 (permalink)  
Antiguo 03/10/2011, 16:21
 
Fecha de Ingreso: mayo-2010
Mensajes: 414
Antigüedad: 13 años, 11 meses
Puntos: 2
Respuesta: controlar si la imagen es jpg

Ok, voy a probar de esa forma , pero hasta ahora si es jpg me creaba la imagen perfectamente creo que con esa solucion sigo teniendo el mismo problema.

Saludos!
  #9 (permalink)  
Antiguo 03/10/2011, 16:51
Avatar de mcun  
Fecha de Ingreso: octubre-2010
Ubicación: tras la pantalla
Mensajes: 466
Antigüedad: 13 años, 6 meses
Puntos: 55
Respuesta: controlar si la imagen es jpg

y si separas la exención con explode y luego la re-nombras a jpg y listo
  #10 (permalink)  
Antiguo 03/10/2011, 17:36
 
Fecha de Ingreso: mayo-2010
Mensajes: 414
Antigüedad: 13 años, 11 meses
Puntos: 2
Respuesta: controlar si la imagen es jpg

Mcun, ¿Cómo quedaría entonces?
  #11 (permalink)  
Antiguo 03/10/2011, 17:47
Avatar de mcun  
Fecha de Ingreso: octubre-2010
Ubicación: tras la pantalla
Mensajes: 466
Antigüedad: 13 años, 6 meses
Puntos: 55
Respuesta: controlar si la imagen es jpg

Mas o menos así ....

Código PHP:
Ver original
  1. $arr=explode(".",$img);
  2. $nombre=$arr[0];
  3.  
  4. rename ("/folder/file.ext", "/folder/$nombre.jpg");


http://php.net/manual/es/function.rename.php

http://php.net/manual/es/function.explode.php
  #12 (permalink)  
Antiguo 03/10/2011, 18:39
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: controlar si la imagen es jpg

Mira otra forma de comprobar:

Código PHP:
Ver original
  1. <?php
  2. if (exif_imagetype('imagen.jpg') != IMAGETYPE_JPEG) {
  3.     echo 'La imagen no es JPG';
  4. }
  5. ?>
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #13 (permalink)  
Antiguo 04/10/2011, 07:37
 
Fecha de Ingreso: mayo-2010
Mensajes: 414
Antigüedad: 13 años, 11 meses
Puntos: 2
Respuesta: controlar si la imagen es jpg

Gracias por las respuestas, pero el problema no es controlar que la imagen sea jpg, el problema viene cuando subo otra imagen distinta a jpg me va a otra pagina que IE no puede mostrar, lean bien el codigo haber si ven algo que no esta del todo bien.

Saludos!
  #14 (permalink)  
Antiguo 04/10/2011, 07:54
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: controlar si la imagen es jpg

El problema con ese tipo de redirecciones es que si el usuario ingreso a tu pagina directamente no tendrá una pagina a donde redirigir.

por que no intentas mejor hacer una condición con http_referer para saber si existe y si es así pues lo rediriges con PHP y no con JavaScript.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #15 (permalink)  
Antiguo 04/10/2011, 08:25
 
Fecha de Ingreso: mayo-2010
Mensajes: 414
Antigüedad: 13 años, 11 meses
Puntos: 2
Respuesta: controlar si la imagen es jpg

Cómo sería eso? disculpa mi ignorancia.

Saludos!
  #16 (permalink)  
Antiguo 04/10/2011, 08:44
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: controlar si la imagen es jpg

Código PHP:
Ver original
  1. if(isset($_SERVER['HTTP_REFERER'])) {
  2.    $anterior = $_SERVER['HTTP_REFERER'];
  3.    echo $anterior;
  4.    //header('Location:'.$anterior);
  5. }else{
  6.    echo 'Usted ingreso directamente a esta pagina y no puede ser redirigido...!'
  7. }
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #17 (permalink)  
Antiguo 04/10/2011, 08:47
 
Fecha de Ingreso: mayo-2010
Mensajes: 414
Antigüedad: 13 años, 11 meses
Puntos: 2
Respuesta: controlar si la imagen es jpg

No entiendo para que me sirve esto si el usuario no puede entrar directamente a esta pagina, primeramente entra a otra pagina y al enviar los datos va a este proceso.

Saludos!
  #18 (permalink)  
Antiguo 04/10/2011, 08:52
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: controlar si la imagen es jpg

seguro que un usuario no puede entrar a esa pagina así?

www.tuDominio.com/unaCarpeta/tuPagina.php

Si escribe esto en la barra de direcciones de tu navegador estoy casi seguro de que puede entrar.

En cuanto al problema real no esta en PHP sino que esta en el JavaScript que no sabemos a donde te esta redirigiendo, intenta hacerle un print al javascript:history.back a ver que ruta lleva.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #19 (permalink)  
Antiguo 04/10/2011, 18:55
 
Fecha de Ingreso: mayo-2010
Mensajes: 414
Antigüedad: 13 años, 11 meses
Puntos: 2
Respuesta: controlar si la imagen es jpg

Gracias por las respuestas al final pude lograrlo con el mensaje de jotaincubus,

if($tipo == 'image/jpeg' || $tipo == 'image/pjpeg' || $tipo == 'image/jpg')

Asi que muchas gracias estaba muy atascado!

Saludos!!

Etiquetas: controlar, imagenes, jpg, mysql, usuarios
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 02:35.