Foros del Web » Programando para Internet » PHP »

Validar imágen

Estas en el tema de Validar imágen en el foro de PHP en Foros del Web. Tomando porciones de varios códigos que ví por ahí armé le siguiente script. El problema es que solo funciona bien en Firefox. En Internet Explorer ...
  #1 (permalink)  
Antiguo 24/06/2009, 17:41
Avatar de canzoneta  
Fecha de Ingreso: diciembre-2003
Ubicación: Mendoza
Mensajes: 79
Antigüedad: 20 años, 3 meses
Puntos: 1
Pregunta Validar imágen

Tomando porciones de varios códigos que ví por ahí armé le siguiente script. El problema es que solo funciona bien en Firefox. En Internet Explorer y Chrome no me reconoce ningún archivo como imágen ¿Alguien me podría decir que está mal?

Gracias.

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style>
body {font-family:Verdana, Geneva, sans-serif; font-size:12px;}
h1 {font-size:16px; font-weight:bold;}
.error {color:#F00; font-size:10px;}
.ok {text-align:center;}
</style>
<title>Envio de fotos</title>
</head>

<body>
<?php
$Name 
"";
$email "";
$comentario "Si lo deseas puedes enviarnos un comentario de la foto.";

if(isset(
$_POST['submit'])) 
{

$Name stripslashes($_POST['Name']);
$email stripslashes($_POST['email']);
$comentario stripslashes($_POST['comentario']);
$upload_Name ereg_replace"([     ]+)"""$_FILES['upload']['name']);
$upload_Size $_FILES['upload']['size'];
$upload_Temp $_FILES['upload']['tmp_name'];
$upload_Mime_Type $_FILES['upload']['type'];
$type substr($upload_Mime_Type, (strpos($upload_Mime_Type,"/"))+1);
$types = array("jpeg","gif","png");



       if( (!empty(
$Name)) && (eregi("^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\._\-]+\.[a-zA-Z]{2,4}"$email)) && ($upload_Size 0) && ($upload_Size <= 512000) && (in_array($type$types)) ) 
           { 


function 
RecursiveMkdir($path)
 {
   if (!
file_exists($path)) 
   { 
      
RecursiveMkdir(dirname($path));
      
mkdir($path0777);
    }
  }
  
$uploadFile "uploads/".$upload_Name ;
if (!
is_dir(dirname($uploadFile)))
  {
    
RecursiveMkdir(dirname($uploadFile)); 
  }
else
  {
  
chmod(dirname($uploadFile), 0777);
  }
move_uploaded_file$upload_Temp $uploadFile); 
chmod($uploadFile0644);

//CHANGE THIS TO THE YOUR DOMAIN
$upload_URL "http://localhost/test/uploads/".$upload_Name ;
//------------

$pfw_header "From: $email";
$pfw_subject "Una Foto fue subida";

// CHANGE THIS TO YOUR EMAIL ADDRESS
$pfw_email_to "newuser@localhost";
//------------
$pfw_message "email: $email\n"

"Nombre: $Name\n"
"Foto: $upload_URL\n"
"Comentario:\n $comentario\n";

mail($pfw_email_to$pfw_subject ,$pfw_message ,$pfw_header ) ;

 echo 
"<div class=\"ok\">Gracias la foto se envió correctamente.<br>En brebe será publicada.</div>";
    } else { 
      echo 
"<div class=\"error\">Por favor corrija los campos marcados en rojo.</div>"
      if(empty(
$Name))
         
$noname "Escribe tu nombre"
      if(!
eregi("^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\._\-]+\.[a-zA-Z]{2,4}"$email)) 
         
$noemail "Error en E-mail."
      if(
$upload_Size <= 0)
         
$cerofoto "No olvides de enviar tu foto";
      if(
$upload_Size 512000)
         
$bigfoto "500Kb máximo";    
      if(!
in_array($type$types))
           
$nofoto "No es una foto.";
      echo 
"<br>"
    } 
}
?>
<form method="post" action="<?php echo $SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">
  <table width="550" border="0" align="center" cellpadding="3" cellspacing="3">
    <tr> 
    <td colspan="2"> 
      <div align="center"><h1>Enviar Foto</h1></div></td>
    </tr>
  <tr> 
    <td colspan="2"><table width="100%" border="0" cellspacing="3" cellpadding="3">
          <tr> 
          <td valign="top">Nombre:</td>
          <td><input name="Name" type="text" id="Name" value="<?php echo $Name?>" size="30"><div class="error"><?php echo $noname?></div></td>
        </tr>
        <tr> 
          <td valign="top">E-mail:</td>
          <td><input name="email" type="text" id="email2" value="<?php echo $email?>" size="30"><div class="error"><?php echo $noemail?></div></td>
        </tr>
        <tr>
          <td valign="top">Foto:</td>
          <td><input name="upload" type="file" size="30"><div class="error"><?php echo $nofoto?>&nbsp;<?php echo $cerofoto?>&nbsp;<?php echo $bigfoto?></div></td>
        </tr>
        <tr>
          <td valign="top">Comentraio:</td>
          <td><label>
            <textarea name="comentario" id="comentario" cols="45" rows="10"><?php echo $comentario?></textarea>
          </label></td>
        </tr>
      </table>
        <div align="center"><br>
          <input name="submit" type="submit" value="Enviar">
          <br>
          <br>
    Tamaño Máximo: 2MB</div></td>
  </tr>
</table>
</form>
</body>
</html>
  #2 (permalink)  
Antiguo 24/06/2009, 17:51
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 6 meses
Puntos: 55
Respuesta: Validar imágen

esto se soluciona facilmente, en vez de tomar el mime, tomas la extension del archivo

Código PHP:

$type 
strtolower(pathinfo$_FILES['upload']['name'], PATHINFO_EXTENSION )); 
__________________
Degiovanni Emilio
developtus.com
  #3 (permalink)  
Antiguo 25/06/2009, 12:22
Avatar de canzoneta  
Fecha de Ingreso: diciembre-2003
Ubicación: Mendoza
Mensajes: 79
Antigüedad: 20 años, 3 meses
Puntos: 1
Respuesta: Validar imágen

Gracias Emilio. Ahora funciona OK.
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 04:41.