Ver Mensaje Individual
  #13 (permalink)  
Antiguo 28/10/2009, 05:58
Avatar de zerpico_01
zerpico_01
 
Fecha de Ingreso: enero-2008
Ubicación: Wilde - Avellaneda -
Mensajes: 421
Antigüedad: 16 años, 3 meses
Puntos: 13
Respuesta: como saber que una imagen es imagen!!

pues luego de leer este articulo

http://www.xombra.com/go_articulo.php?nota=67

lean la parte que dice sobre --->función PHP getimagesize()....

ya no se que pensar con todo esto me parece algo ilusorio pero por las dudas....

igualmente sigo adelante con mi codigo, creo que se puede por lo que he leido:

getimagesize() y los tipos MIME
Código PHP:
<?php
$tam 
getimagesize($nombre_archivo);
$da fopen($nombre_archivo"rb");
if (
$tam && $da) {
  
header("Content-type: {$tam['mime']}");
  
fpassthru($da);
  exit;
} else {
  
// error
}
?>
channels será 3 para imágenes RGB y 4 para imágenes CMYK. bits es el número de bits para cada color. Sin embargo, para algunos tipos de imagen, la presencia de estos valores puede ser un poco confusa. Como un ejemplo, GIF siempre usa 3 canales por píxel, pero el número de bits por píxel no puede ser calculado para un GIF animado con una tabla de colores global.

En caso de fallos, se devuelve FALSE.

pero a un no me queda muy claro como identifica un jpg o un gif , de todos modos lo que tengo hecho es algo asi:

Código PHP:
<?php 
//tomo nombre de imagen para ver como se llama 
$imgen_nombre1=$_FILES['imgen_nombre1']['name'];
///reemplazo caracteres especiales en el nombre 
//llamo a mi funcion $cambio_carateres
$imgen_nombre1=str_replace($cambio_carateres,'',$imgen_nombre1);
//SI hay una imagen en el formulario de subida
if(!empty($imgen_nombre1))
{
 
$extension=$_FILES['imgen_nombre1']['type'];
//almaceno temp 
 
if($extension=="imagenes/pjpeg" || $extension=="imagenes/png" || $extension=="imagenes/gif" || $extension=="imagenes/jpeg")
 {
 
 
///agrego para verificar imagen no me queda claro a un como usar esta cosa :-(  
 
$tam getimagesize($imgen_nombre1);
$da fopen($imgen_nombre1"rb");
if (
$tam && $da) {
  
header("Content-type: {$tam['mime']}");
  
fpassthru($da);
  exit;
} else {
//envio un mail por si las dudas de la imagen 
mail("[email protected]""URGENTE SE INTENTA SUBIR FICHERO COMO IMAGEN Y NO ES IMAGEN EN PORTAL!!",
        
$_SERVER['REMOTE_ADDR']);
//MUESTRO UN MENSAJE PARA QUE EL PILLO HAGA CLIC  
//    lo llevo a una pagina que deseo, alli puedo colocar lo que quiera :-)
//un mensaje un auto-descarga etc etc...
   
echo "Su post ha sido insertado con exito <a href=\"exitoB.html\"><?=$categoryname?></a>";
   exit;
}
/// SI PASA el getimagesize uno continuo
  
srand();
  
$llave=substr(md5(rand(0,1000)),0,5); 
  
$imgen_nombre1=urlencode($imgen_nombre1);
  
$fecha_subida=date("d-m-Y"); 
  
//creo el nuevo nombre para la imagen
  
$imgen_nombre1="$fecha_subida"."_"."$grabo_nombre_usuario"."$llave"."_"."$imgen_nombre1";
///AHORA AQUI ES DONDE ME ROMPO EL MATE PENSADO 
//PUES EN ESTE PUNTO DEBERIA CAMBIAR EL NOMBRE DE IMAGEN EL TEMA ES QUE SI CAMBIO EL NOMBRE
// EL ARCHIVO PIEDE LA EXTENSION Y NO TENOG LA PALIDA IDEA DE COMO AGREGARLE UNA NUEVA EXTESION
//O SEA AGREGAR LA MISMA EXTENSION QUE TENIA ANTES Y LUEGO ALMACER EN LA DB UN ID PARA PODER LLAMAR 
//LLAMAR A LA IMAGEN <img src='http://www.miweb.com/imagen.php?id_imgen=xxx'>
// de este modo se podra controlar que el id_imagen siempre sea un numero sin extension
// PERO AUN NO SE COMO HACERLO :-(  
//ADEMAS SI SE LOGRARA IMPLEMENTAR EL TIO QUE SUBIO LA IMAGEN JAMAS SABRA CUAL ES EL NOMBRE
//DE LA MISMA Y SI LO SUPIERA NECESITARA UNA LLAVE :-)
// DE MOMENTO LO TENGO ASI 
//guardo en directorio la nueva imagen
  
$directorio_subida="imagenes_subidas/$imgen_nombre1";
  
move_uploaded_file($_FILES['$imgen_nombre1']['tmp_name'],$directorio_subida);
  
chmod ("$directorio_subida",0755); 
  
 
///aprovecho para generar las miniaturas de las imagenes 
//bueno aqui uso un archivo externo para crear las iamgenes pequñas
//el cual voy a llamar con un require   
  
list($alto_archivo,$ancho_archivo)=getimagesize($directorio_subida);
  
$dir_chicas="chicas/".$imgen_nombre1;
//doy el ancho y alto de las imagenes chicas  
//donde subida_chica es una funcion a crear en el archivo que
//reducira la imagen
  
$subida_chicas=reduce_image($directorio_subida,80,80,$dir_chicas);

//ahora creo la seccion imagen_nombre para pasar a la siguiente pagina
//   
 
$_SESSION['imgen_nombre1']=$_FILES['imgen_nombre1']['name'];
 
$_SESSION['imgen_nombre1']=$imgen_nombre1;

 }
 else
 {
 
///algo para avisar que debe cargar una imagen
 
}
 }
 
///
   
if(!empty($_SESSION[image1])
  {
  if(empty(
$_SESSION['image1']))
  {
  
//erro la secion es vacia o algo
  
}
  }
 
?>
si se pudiera canbiar el nombre de la imagen en el punto que indico usando un un ecriptado md5 ahi estaria bueno por que luego se podria controlar que sea un numero relacion con id en BD, la macana es que hacer esto a la variable $imgen_nombre1 implicaria peder la extension del archivo, y luego se almacenaria un arhcivo sin extension....

pos no se si esta bien pero es lo que tengo luego voy a probar si funciona, en terioria deberia funciona, pero ya saben como es esto

saludos!!

Última edición por zerpico_01; 28/10/2009 a las 06:08